00001 #line 2 "ast_expr2f.c"
00002
00003 #line 4 "ast_expr2f.c"
00004
00005 #define YY_INT_ALIGNED short int
00006
00007
00008
00009 #define FLEX_SCANNER
00010 #define YY_FLEX_MAJOR_VERSION 2
00011 #define YY_FLEX_MINOR_VERSION 5
00012 #define YY_FLEX_SUBMINOR_VERSION 35
00013 #if YY_FLEX_SUBMINOR_VERSION > 0
00014 #define FLEX_BETA
00015 #endif
00016
00017
00018
00019
00020 #include <stdio.h>
00021 #include <string.h>
00022 #include <errno.h>
00023 #include <stdlib.h>
00024
00025
00026
00027
00028
00029 #ifndef FLEXINT_H
00030 #define FLEXINT_H
00031
00032
00033
00034 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
00035
00036
00037
00038
00039 #ifndef __STDC_LIMIT_MACROS
00040 #define __STDC_LIMIT_MACROS 1
00041 #endif
00042
00043 #include <inttypes.h>
00044 typedef int8_t flex_int8_t;
00045 typedef uint8_t flex_uint8_t;
00046 typedef int16_t flex_int16_t;
00047 typedef uint16_t flex_uint16_t;
00048 typedef int32_t flex_int32_t;
00049 typedef uint32_t flex_uint32_t;
00050 #else
00051 typedef signed char flex_int8_t;
00052 typedef short int flex_int16_t;
00053 typedef int flex_int32_t;
00054 typedef unsigned char flex_uint8_t;
00055 typedef unsigned short int flex_uint16_t;
00056 typedef unsigned int flex_uint32_t;
00057
00058
00059 #ifndef INT8_MIN
00060 #define INT8_MIN (-128)
00061 #endif
00062 #ifndef INT16_MIN
00063 #define INT16_MIN (-32767-1)
00064 #endif
00065 #ifndef INT32_MIN
00066 #define INT32_MIN (-2147483647-1)
00067 #endif
00068 #ifndef INT8_MAX
00069 #define INT8_MAX (127)
00070 #endif
00071 #ifndef INT16_MAX
00072 #define INT16_MAX (32767)
00073 #endif
00074 #ifndef INT32_MAX
00075 #define INT32_MAX (2147483647)
00076 #endif
00077 #ifndef UINT8_MAX
00078 #define UINT8_MAX (255U)
00079 #endif
00080 #ifndef UINT16_MAX
00081 #define UINT16_MAX (65535U)
00082 #endif
00083 #ifndef UINT32_MAX
00084 #define UINT32_MAX (4294967295U)
00085 #endif
00086
00087 #endif
00088
00089 #endif
00090
00091 #ifdef __cplusplus
00092
00093
00094 #define YY_USE_CONST
00095
00096 #else
00097
00098
00099 #if defined (__STDC__)
00100
00101 #define YY_USE_CONST
00102
00103 #endif
00104 #endif
00105
00106 #ifdef YY_USE_CONST
00107 #define yyconst const
00108 #else
00109 #define yyconst
00110 #endif
00111
00112
00113 #define YY_NULL 0
00114
00115
00116
00117
00118
00119
00120 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
00121
00122
00123 #ifndef YY_TYPEDEF_YY_SCANNER_T
00124 #define YY_TYPEDEF_YY_SCANNER_T
00125 typedef void* yyscan_t;
00126 #endif
00127
00128
00129
00130 #define yyin yyg->yyin_r
00131 #define yyout yyg->yyout_r
00132 #define yyextra yyg->yyextra_r
00133 #define yyleng yyg->yyleng_r
00134 #define yytext yyg->yytext_r
00135 #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
00136 #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
00137 #define yy_flex_debug yyg->yy_flex_debug_r
00138
00139
00140
00141
00142
00143 #define BEGIN yyg->yy_start = 1 + 2 *
00144
00145
00146
00147
00148
00149 #define YY_START ((yyg->yy_start - 1) / 2)
00150 #define YYSTATE YY_START
00151
00152
00153 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
00154
00155
00156 #define YY_NEW_FILE ast_yyrestart(yyin ,yyscanner )
00157
00158 #define YY_END_OF_BUFFER_CHAR 0
00159
00160
00161 #ifndef YY_BUF_SIZE
00162 #define YY_BUF_SIZE 16384
00163 #endif
00164
00165
00166
00167 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
00168
00169 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
00170 #define YY_TYPEDEF_YY_BUFFER_STATE
00171 typedef struct yy_buffer_state *YY_BUFFER_STATE;
00172 #endif
00173
00174 #define EOB_ACT_CONTINUE_SCAN 0
00175 #define EOB_ACT_END_OF_FILE 1
00176 #define EOB_ACT_LAST_MATCH 2
00177
00178 #define YY_LESS_LINENO(n)
00179
00180
00181 #define yyless(n) \
00182 do \
00183 { \
00184 \
00185 int yyless_macro_arg = (n); \
00186 YY_LESS_LINENO(yyless_macro_arg);\
00187 *yy_cp = yyg->yy_hold_char; \
00188 YY_RESTORE_YY_MORE_OFFSET \
00189 yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
00190 YY_DO_BEFORE_ACTION; \
00191 } \
00192 while ( 0 )
00193
00194 #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
00195
00196 #ifndef YY_TYPEDEF_YY_SIZE_T
00197 #define YY_TYPEDEF_YY_SIZE_T
00198 typedef size_t yy_size_t;
00199 #endif
00200
00201 #ifndef YY_STRUCT_YY_BUFFER_STATE
00202 #define YY_STRUCT_YY_BUFFER_STATE
00203 struct yy_buffer_state
00204 {
00205 FILE *yy_input_file;
00206
00207 char *yy_ch_buf;
00208 char *yy_buf_pos;
00209
00210
00211
00212
00213 yy_size_t yy_buf_size;
00214
00215
00216
00217
00218 int yy_n_chars;
00219
00220
00221
00222
00223
00224 int yy_is_our_buffer;
00225
00226
00227
00228
00229
00230
00231 int yy_is_interactive;
00232
00233
00234
00235
00236
00237 int yy_at_bol;
00238
00239 int yy_bs_lineno;
00240 int yy_bs_column;
00241
00242
00243
00244
00245 int yy_fill_buffer;
00246
00247 int yy_buffer_status;
00248
00249 #define YY_BUFFER_NEW 0
00250 #define YY_BUFFER_NORMAL 1
00251
00252
00253
00254
00255
00256
00257
00258
00259
00260
00261 #define YY_BUFFER_EOF_PENDING 2
00262
00263 };
00264 #endif
00265
00266
00267
00268
00269
00270
00271
00272 #define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
00273 ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
00274 : NULL)
00275
00276
00277
00278
00279 #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
00280
00281 void ast_yyrestart (FILE *input_file ,yyscan_t yyscanner );
00282 void ast_yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
00283 YY_BUFFER_STATE ast_yy_create_buffer (FILE *file,int size ,yyscan_t yyscanner );
00284 void ast_yy_delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
00285 void ast_yy_flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
00286 void ast_yypush_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
00287 void ast_yypop_buffer_state (yyscan_t yyscanner );
00288
00289 static void ast_yyensure_buffer_stack (yyscan_t yyscanner );
00290 static void ast_yy_load_buffer_state (yyscan_t yyscanner );
00291 static void ast_yy_init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yyscanner );
00292
00293 #define YY_FLUSH_BUFFER ast_yy_flush_buffer(YY_CURRENT_BUFFER ,yyscanner)
00294
00295 YY_BUFFER_STATE ast_yy_scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner );
00296 YY_BUFFER_STATE ast_yy_scan_string (yyconst char *yy_str ,yyscan_t yyscanner );
00297 YY_BUFFER_STATE ast_yy_scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner );
00298
00299 void *ast_yyalloc (yy_size_t ,yyscan_t yyscanner );
00300 void *ast_yyrealloc (void *,yy_size_t ,yyscan_t yyscanner );
00301 void ast_yyfree (void * ,yyscan_t yyscanner );
00302
00303 #define yy_new_buffer ast_yy_create_buffer
00304
00305 #define yy_set_interactive(is_interactive) \
00306 { \
00307 if ( ! YY_CURRENT_BUFFER ){ \
00308 ast_yyensure_buffer_stack (yyscanner); \
00309 YY_CURRENT_BUFFER_LVALUE = \
00310 ast_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
00311 } \
00312 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
00313 }
00314
00315 #define yy_set_bol(at_bol) \
00316 { \
00317 if ( ! YY_CURRENT_BUFFER ){\
00318 ast_yyensure_buffer_stack (yyscanner); \
00319 YY_CURRENT_BUFFER_LVALUE = \
00320 ast_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
00321 } \
00322 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
00323 }
00324
00325 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
00326
00327
00328
00329 #define ast_yywrap(n) 1
00330 #define YY_SKIP_YYWRAP
00331
00332 typedef char YY_CHAR;
00333
00334 typedef int yy_state_type;
00335
00336 #define yytext_ptr yytext_r
00337 static yyconst flex_int16_t yy_nxt[][128] =
00338 {
00339 {
00340 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00341 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00342 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00343 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00344 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00345 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00346 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00347 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00348 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00349 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00350
00351 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00352 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00353 0, 0, 0, 0, 0, 0, 0, 0
00354 },
00355
00356 {
00357 7, 8, 8, 8, 8, 8, 8, 8, 8, 9,
00358 10, 8, 8, 9, 8, 8, 8, 8, 8, 8,
00359 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
00360 8, 8, 9, 11, 12, 13, 14, 15, 16, 13,
00361 17, 18, 19, 20, 13, 21, 13, 22, 23, 23,
00362 23, 23, 23, 23, 23, 23, 23, 23, 24, 13,
00363 25, 26, 27, 28, 13, 13, 13, 13, 13, 13,
00364
00365 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
00366 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
00367 13, 8, 13, 8, 13, 13, 8, 13, 13, 13,
00368 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
00369 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
00370 13, 13, 13, 8, 29, 8, 8, 8
00371 },
00372
00373 {
00374 7, 8, 8, 8, 8, 8, 8, 8, 8, 9,
00375 10, 8, 8, 9, 8, 8, 8, 8, 8, 8,
00376 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
00377 8, 8, 9, 11, 12, 13, 14, 15, 16, 13,
00378
00379 17, 18, 19, 20, 13, 21, 13, 22, 23, 23,
00380 23, 23, 23, 23, 23, 23, 23, 23, 24, 13,
00381 25, 26, 27, 28, 13, 13, 13, 13, 13, 13,
00382 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
00383 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
00384 13, 8, 13, 8, 13, 13, 8, 13, 13, 13,
00385 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
00386 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
00387 13, 13, 13, 8, 29, 8, 8, 8
00388 },
00389
00390 {
00391 7, 30, 30, 30, 30, 30, 30, 30, 30, 30,
00392
00393 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
00394 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
00395 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
00396 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
00397 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
00398 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
00399 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
00400 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
00401 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
00402 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
00403
00404 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
00405 30, 30, 30, 31, 30, 32, 30, 30
00406 },
00407
00408 {
00409 7, 30, 30, 30, 30, 30, 30, 30, 30, 30,
00410 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
00411 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
00412 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
00413 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
00414 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
00415 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
00416 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
00417
00418 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
00419 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
00420 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
00421 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
00422 30, 30, 30, 31, 30, 32, 30, 30
00423 },
00424
00425 {
00426 7, 33, 33, 33, 33, 33, 33, 33, 33, 34,
00427 34, 33, 33, 34, 33, 33, 33, 33, 33, 33,
00428 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
00429 33, 33, 34, 34, 33, 33, 35, 34, 34, 33,
00430 34, 34, 34, 34, 33, 34, 33, 34, 33, 33,
00431
00432 33, 33, 33, 33, 33, 33, 33, 33, 34, 33,
00433 34, 34, 34, 34, 33, 33, 33, 33, 33, 33,
00434 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
00435 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
00436 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
00437 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
00438 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
00439 33, 33, 33, 33, 34, 33, 33, 33
00440 },
00441
00442 {
00443 7, 33, 33, 33, 33, 33, 33, 33, 33, 34,
00444 34, 33, 33, 34, 33, 33, 33, 33, 33, 33,
00445
00446 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
00447 33, 33, 34, 34, 33, 33, 35, 34, 34, 33,
00448 34, 34, 34, 34, 33, 34, 33, 34, 33, 33,
00449 33, 33, 33, 33, 33, 33, 33, 33, 34, 33,
00450 34, 34, 34, 34, 33, 33, 33, 33, 33, 33,
00451 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
00452 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
00453 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
00454 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
00455 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
00456
00457 33, 33, 33, 33, 34, 33, 33, 33
00458 },
00459
00460 {
00461 -7, -7, -7, -7, -7, -7, -7, -7, -7, -7,
00462 -7, -7, -7, -7, -7, -7, -7, -7, -7, -7,
00463 -7, -7, -7, -7, -7, -7, -7, -7, -7, -7,
00464 -7, -7, -7, -7, -7, -7, -7, -7, -7, -7,
00465 -7, -7, -7, -7, -7, -7, -7, -7, -7, -7,
00466 -7, -7, -7, -7, -7, -7, -7, -7, -7, -7,
00467 -7, -7, -7, -7, -7, -7, -7, -7, -7, -7,
00468 -7, -7, -7, -7, -7, -7, -7, -7, -7, -7,
00469 -7, -7, -7, -7, -7, -7, -7, -7, -7, -7,
00470
00471 -7, -7, -7, -7, -7, -7, -7, -7, -7, -7,
00472 -7, -7, -7, -7, -7, -7, -7, -7, -7, -7,
00473 -7, -7, -7, -7, -7, -7, -7, -7, -7, -7,
00474 -7, -7, -7, -7, -7, -7, -7, -7
00475 },
00476
00477 {
00478 7, -8, -8, -8, -8, -8, -8, -8, -8, -8,
00479 -8, -8, -8, -8, -8, -8, -8, -8, -8, -8,
00480 -8, -8, -8, -8, -8, -8, -8, -8, -8, -8,
00481 -8, -8, -8, -8, -8, -8, -8, -8, -8, -8,
00482 -8, -8, -8, -8, -8, -8, -8, -8, -8, -8,
00483 -8, -8, -8, -8, -8, -8, -8, -8, -8, -8,
00484
00485 -8, -8, -8, -8, -8, -8, -8, -8, -8, -8,
00486 -8, -8, -8, -8, -8, -8, -8, -8, -8, -8,
00487 -8, -8, -8, -8, -8, -8, -8, -8, -8, -8,
00488 -8, -8, -8, -8, -8, -8, -8, -8, -8, -8,
00489 -8, -8, -8, -8, -8, -8, -8, -8, -8, -8,
00490 -8, -8, -8, -8, -8, -8, -8, -8, -8, -8,
00491 -8, -8, -8, -8, -8, -8, -8, -8
00492 },
00493
00494 {
00495 7, -9, -9, -9, -9, -9, -9, -9, -9, -9,
00496 -9, -9, -9, -9, -9, -9, -9, -9, -9, -9,
00497 -9, -9, -9, -9, -9, -9, -9, -9, -9, -9,
00498
00499 -9, -9, -9, -9, -9, -9, -9, -9, -9, -9,
00500 -9, -9, -9, -9, -9, -9, -9, -9, -9, -9,
00501 -9, -9, -9, -9, -9, -9, -9, -9, -9, -9,
00502 -9, -9, -9, -9, -9, -9, -9, -9, -9, -9,
00503 -9, -9, -9, -9, -9, -9, -9, -9, -9, -9,
00504 -9, -9, -9, -9, -9, -9, -9, -9, -9, -9,
00505 -9, -9, -9, -9, -9, -9, -9, -9, -9, -9,
00506 -9, -9, -9, -9, -9, -9, -9, -9, -9, -9,
00507 -9, -9, -9, -9, -9, -9, -9, -9, -9, -9,
00508 -9, -9, -9, -9, -9, -9, -9, -9
00509
00510 },
00511
00512 {
00513 7, -10, -10, -10, -10, -10, -10, -10, -10, -10,
00514 -10, -10, -10, -10, -10, -10, -10, -10, -10, -10,
00515 -10, -10, -10, -10, -10, -10, -10, -10, -10, -10,
00516 -10, -10, -10, -10, -10, -10, -10, -10, -10, -10,
00517 -10, -10, -10, -10, -10, -10, -10, -10, -10, -10,
00518 -10, -10, -10, -10, -10, -10, -10, -10, -10, -10,
00519 -10, -10, -10, -10, -10, -10, -10, -10, -10, -10,
00520 -10, -10, -10, -10, -10, -10, -10, -10, -10, -10,
00521 -10, -10, -10, -10, -10, -10, -10, -10, -10, -10,
00522 -10, -10, -10, -10, -10, -10, -10, -10, -10, -10,
00523
00524 -10, -10, -10, -10, -10, -10, -10, -10, -10, -10,
00525 -10, -10, -10, -10, -10, -10, -10, -10, -10, -10,
00526 -10, -10, -10, -10, -10, -10, -10, -10
00527 },
00528
00529 {
00530 7, -11, -11, -11, -11, -11, -11, -11, -11, -11,
00531 -11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
00532 -11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
00533 -11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
00534 -11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
00535 -11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
00536 -11, 36, -11, -11, -11, -11, -11, -11, -11, -11,
00537
00538 -11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
00539 -11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
00540 -11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
00541 -11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
00542 -11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
00543 -11, -11, -11, -11, -11, -11, -11, -11
00544 },
00545
00546 {
00547 7, 37, 37, 37, 37, 37, 37, 37, 37, 37,
00548 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
00549 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
00550 37, 37, 37, 37, 38, 37, 37, 37, 37, 37,
00551
00552 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
00553 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
00554 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
00555 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
00556 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
00557 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
00558 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
00559 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
00560 37, 37, 37, 37, 37, 37, 37, 37
00561 },
00562
00563 {
00564 7, -13, -13, -13, -13, -13, -13, -13, -13, -13,
00565
00566 -13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
00567 -13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
00568 -13, -13, -13, -13, -13, 39, 39, -13, -13, 39,
00569 -13, -13, -13, -13, 39, -13, 39, -13, 39, 39,
00570 39, 39, 39, 39, 39, 39, 39, 39, -13, 39,
00571 -13, -13, -13, -13, 39, 39, 39, 39, 39, 39,
00572 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
00573 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
00574 39, -13, 39, -13, 39, 39, -13, 39, 39, 39,
00575 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
00576
00577 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
00578 39, 39, 39, -13, -13, -13, -13, -13
00579 },
00580
00581 {
00582 7, -14, -14, -14, -14, -14, -14, -14, -14, -14,
00583 -14, -14, -14, -14, -14, -14, -14, -14, -14, -14,
00584 -14, -14, -14, -14, -14, -14, -14, -14, -14, -14,
00585 -14, -14, -14, -14, -14, 39, 39, -14, -14, 39,
00586 -14, -14, -14, -14, 39, -14, 39, -14, 39, 39,
00587 39, 39, 39, 39, 39, 39, 39, 39, -14, 39,
00588 -14, -14, -14, -14, 39, 39, 39, 39, 39, 39,
00589 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
00590
00591 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
00592 39, -14, 39, -14, 39, 39, -14, 39, 39, 39,
00593 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
00594 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
00595 39, 39, 39, 40, -14, -14, -14, -14
00596 },
00597
00598 {
00599 7, -15, -15, -15, -15, -15, -15, -15, -15, -15,
00600 -15, -15, -15, -15, -15, -15, -15, -15, -15, -15,
00601 -15, -15, -15, -15, -15, -15, -15, -15, -15, -15,
00602 -15, -15, -15, -15, -15, -15, -15, -15, -15, -15,
00603 -15, -15, -15, -15, -15, -15, -15, -15, -15, -15,
00604
00605 -15, -15, -15, -15, -15, -15, -15, -15, -15, -15,
00606 -15, -15, -15, -15, -15, -15, -15, -15, -15, -15,
00607 -15, -15, -15, -15, -15, -15, -15, -15, -15, -15,
00608 -15, -15, -15, -15, -15, -15, -15, -15, -15, -15,
00609 -15, -15, -15, -15, -15, -15, -15, -15, -15, -15,
00610 -15, -15, -15, -15, -15, -15, -15, -15, -15, -15,
00611 -15, -15, -15, -15, -15, -15, -15, -15, -15, -15,
00612 -15, -15, -15, -15, -15, -15, -15, -15
00613 },
00614
00615 {
00616 7, -16, -16, -16, -16, -16, -16, -16, -16, -16,
00617 -16, -16, -16, -16, -16, -16, -16, -16, -16, -16,
00618
00619 -16, -16, -16, -16, -16, -16, -16, -16, -16, -16,
00620 -16, -16, -16, -16, -16, -16, -16, -16, 41, -16,
00621 -16, -16, -16, -16, -16, -16, -16, -16, -16, -16,
00622 -16, -16, -16, -16, -16, -16, -16, -16, -16, -16,
00623 -16, -16, -16, -16, -16, -16, -16, -16, -16, -16,
00624 -16, -16, -16, -16, -16, -16, -16, -16, -16, -16,
00625 -16, -16, -16, -16, -16, -16, -16, -16, -16, -16,
00626 -16, -16, -16, -16, -16, -16, -16, -16, -16, -16,
00627 -16, -16, -16, -16, -16, -16, -16, -16, -16, -16,
00628 -16, -16, -16, -16, -16, -16, -16, -16, -16, -16,
00629
00630 -16, -16, -16, -16, -16, -16, -16, -16
00631 },
00632
00633 {
00634 7, -17, -17, -17, -17, -17, -17, -17, -17, -17,
00635 -17, -17, -17, -17, -17, -17, -17, -17, -17, -17,
00636 -17, -17, -17, -17, -17, -17, -17, -17, -17, -17,
00637 -17, -17, -17, -17, -17, -17, -17, -17, -17, -17,
00638 -17, -17, -17, -17, -17, -17, -17, -17, -17, -17,
00639 -17, -17, -17, -17, -17, -17, -17, -17, -17, -17,
00640 -17, -17, -17, -17, -17, -17, -17, -17, -17, -17,
00641 -17, -17, -17, -17, -17, -17, -17, -17, -17, -17,
00642 -17, -17, -17, -17, -17, -17, -17, -17, -17, -17,
00643
00644 -17, -17, -17, -17, -17, -17, -17, -17, -17, -17,
00645 -17, -17, -17, -17, -17, -17, -17, -17, -17, -17,
00646 -17, -17, -17, -17, -17, -17, -17, -17, -17, -17,
00647 -17, -17, -17, -17, -17, -17, -17, -17
00648 },
00649
00650 {
00651 7, -18, -18, -18, -18, -18, -18, -18, -18, -18,
00652 -18, -18, -18, -18, -18, -18, -18, -18, -18, -18,
00653 -18, -18, -18, -18, -18, -18, -18, -18, -18, -18,
00654 -18, -18, -18, -18, -18, -18, -18, -18, -18, -18,
00655 -18, -18, -18, -18, -18, -18, -18, -18, -18, -18,
00656 -18, -18, -18, -18, -18, -18, -18, -18, -18, -18,
00657
00658 -18, -18, -18, -18, -18, -18, -18, -18, -18, -18,
00659 -18, -18, -18, -18, -18, -18, -18, -18, -18, -18,
00660 -18, -18, -18, -18, -18, -18, -18, -18, -18, -18,
00661 -18, -18, -18, -18, -18, -18, -18, -18, -18, -18,
00662 -18, -18, -18, -18, -18, -18, -18, -18, -18, -18,
00663 -18, -18, -18, -18, -18, -18, -18, -18, -18, -18,
00664 -18, -18, -18, -18, -18, -18, -18, -18
00665 },
00666
00667 {
00668 7, -19, -19, -19, -19, -19, -19, -19, -19, -19,
00669 -19, -19, -19, -19, -19, -19, -19, -19, -19, -19,
00670 -19, -19, -19, -19, -19, -19, -19, -19, -19, -19,
00671
00672 -19, -19, -19, -19, -19, -19, -19, -19, -19, -19,
00673 -19, -19, -19, -19, -19, -19, -19, -19, -19, -19,
00674 -19, -19, -19, -19, -19, -19, -19, -19, -19, -19,
00675 -19, -19, -19, -19, -19, -19, -19, -19, -19, -19,
00676 -19, -19, -19, -19, -19, -19, -19, -19, -19, -19,
00677 -19, -19, -19, -19, -19, -19, -19, -19, -19, -19,
00678 -19, -19, -19, -19, -19, -19, -19, -19, -19, -19,
00679 -19, -19, -19, -19, -19, -19, -19, -19, -19, -19,
00680 -19, -19, -19, -19, -19, -19, -19, -19, -19, -19,
00681 -19, -19, -19, -19, -19, -19, -19, -19
00682
00683 },
00684
00685 {
00686 7, -20, -20, -20, -20, -20, -20, -20, -20, -20,
00687 -20, -20, -20, -20, -20, -20, -20, -20, -20, -20,
00688 -20, -20, -20, -20, -20, -20, -20, -20, -20, -20,
00689 -20, -20, -20, -20, -20, -20, -20, -20, -20, -20,
00690 -20, -20, -20, -20, -20, -20, -20, -20, -20, -20,
00691 -20, -20, -20, -20, -20, -20, -20, -20, -20, -20,
00692 -20, -20, -20, -20, -20, -20, -20, -20, -20, -20,
00693 -20, -20, -20, -20, -20, -20, -20, -20, -20, -20,
00694 -20, -20, -20, -20, -20, -20, -20, -20, -20, -20,
00695 -20, -20, -20, -20, -20, -20, -20, -20, -20, -20,
00696
00697 -20, -20, -20, -20, -20, -20, -20, -20, -20, -20,
00698 -20, -20, -20, -20, -20, -20, -20, -20, -20, -20,
00699 -20, -20, -20, -20, -20, -20, -20, -20
00700 },
00701
00702 {
00703 7, -21, -21, -21, -21, -21, -21, -21, -21, -21,
00704 -21, -21, -21, -21, -21, -21, -21, -21, -21, -21,
00705 -21, -21, -21, -21, -21, -21, -21, -21, -21, -21,
00706 -21, -21, -21, -21, -21, -21, -21, -21, -21, -21,
00707 -21, -21, -21, -21, -21, -21, -21, -21, -21, -21,
00708 -21, -21, -21, -21, -21, -21, -21, -21, -21, -21,
00709 -21, -21, -21, -21, -21, -21, -21, -21, -21, -21,
00710
00711 -21, -21, -21, -21, -21, -21, -21, -21, -21, -21,
00712 -21, -21, -21, -21, -21, -21, -21, -21, -21, -21,
00713 -21, -21, -21, -21, -21, -21, -21, -21, -21, -21,
00714 -21, -21, -21, -21, -21, -21, -21, -21, -21, -21,
00715 -21, -21, -21, -21, -21, -21, -21, -21, -21, -21,
00716 -21, -21, -21, -21, -21, -21, -21, -21
00717 },
00718
00719 {
00720 7, -22, -22, -22, -22, -22, -22, -22, -22, -22,
00721 -22, -22, -22, -22, -22, -22, -22, -22, -22, -22,
00722 -22, -22, -22, -22, -22, -22, -22, -22, -22, -22,
00723 -22, -22, -22, -22, -22, -22, -22, -22, -22, -22,
00724
00725 -22, -22, -22, -22, -22, -22, -22, -22, -22, -22,
00726 -22, -22, -22, -22, -22, -22, -22, -22, -22, -22,
00727 -22, -22, -22, -22, -22, -22, -22, -22, -22, -22,
00728 -22, -22, -22, -22, -22, -22, -22, -22, -22, -22,
00729 -22, -22, -22, -22, -22, -22, -22, -22, -22, -22,
00730 -22, -22, -22, -22, -22, -22, -22, -22, -22, -22,
00731 -22, -22, -22, -22, -22, -22, -22, -22, -22, -22,
00732 -22, -22, -22, -22, -22, -22, -22, -22, -22, -22,
00733 -22, -22, -22, -22, -22, -22, -22, -22
00734 },
00735
00736 {
00737 7, -23, -23, -23, -23, -23, -23, -23, -23, -23,
00738
00739 -23, -23, -23, -23, -23, -23, -23, -23, -23, -23,
00740 -23, -23, -23, -23, -23, -23, -23, -23, -23, -23,
00741 -23, -23, -23, -23, -23, 39, 39, -23, -23, 39,
00742 -23, -23, -23, -23, 39, -23, 39, -23, 42, 42,
00743 42, 42, 42, 42, 42, 42, 42, 42, -23, 39,
00744 -23, -23, -23, -23, 39, 39, 39, 39, 39, 39,
00745 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
00746 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
00747 39, -23, 39, -23, 39, 39, -23, 39, 39, 39,
00748 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
00749
00750 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
00751 39, 39, 39, -23, -23, -23, -23, -23
00752 },
00753
00754 {
00755 7, -24, -24, -24, -24, -24, -24, -24, -24, -24,
00756 -24, -24, -24, -24, -24, -24, -24, -24, -24, -24,
00757 -24, -24, -24, -24, -24, -24, -24, -24, -24, -24,
00758 -24, -24, -24, -24, -24, -24, -24, -24, -24, -24,
00759 -24, -24, -24, -24, -24, -24, -24, -24, -24, -24,
00760 -24, -24, -24, -24, -24, -24, -24, -24, 43, -24,
00761 -24, -24, -24, -24, -24, -24, -24, -24, -24, -24,
00762 -24, -24, -24, -24, -24, -24, -24, -24, -24, -24,
00763
00764 -24, -24, -24, -24, -24, -24, -24, -24, -24, -24,
00765 -24, -24, -24, -24, -24, -24, -24, -24, -24, -24,
00766 -24, -24, -24, -24, -24, -24, -24, -24, -24, -24,
00767 -24, -24, -24, -24, -24, -24, -24, -24, -24, -24,
00768 -24, -24, -24, -24, -24, -24, -24, -24
00769 },
00770
00771 {
00772 7, -25, -25, -25, -25, -25, -25, -25, -25, -25,
00773 -25, -25, -25, -25, -25, -25, -25, -25, -25, -25,
00774 -25, -25, -25, -25, -25, -25, -25, -25, -25, -25,
00775 -25, -25, -25, -25, -25, -25, -25, -25, -25, -25,
00776 -25, -25, -25, -25, -25, -25, -25, -25, -25, -25,
00777
00778 -25, -25, -25, -25, -25, -25, -25, -25, -25, -25,
00779 -25, 44, -25, -25, -25, -25, -25, -25, -25, -25,
00780 -25, -25, -25, -25, -25, -25, -25, -25, -25, -25,
00781 -25, -25, -25, -25, -25, -25, -25, -25, -25, -25,
00782 -25, -25, -25, -25, -25, -25, -25, -25, -25, -25,
00783 -25, -25, -25, -25, -25, -25, -25, -25, -25, -25,
00784 -25, -25, -25, -25, -25, -25, -25, -25, -25, -25,
00785 -25, -25, -25, -25, -25, -25, -25, -25
00786 },
00787
00788 {
00789 7, -26, -26, -26, -26, -26, -26, -26, -26, -26,
00790 -26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
00791
00792 -26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
00793 -26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
00794 -26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
00795 -26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
00796 -26, 45, -26, -26, -26, -26, -26, -26, -26, -26,
00797 -26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
00798 -26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
00799 -26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
00800 -26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
00801 -26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
00802
00803 -26, -26, -26, -26, -26, -26, 46, -26
00804 },
00805
00806 {
00807 7, -27, -27, -27, -27, -27, -27, -27, -27, -27,
00808 -27, -27, -27, -27, -27, -27, -27, -27, -27, -27,
00809 -27, -27, -27, -27, -27, -27, -27, -27, -27, -27,
00810 -27, -27, -27, -27, -27, -27, -27, -27, -27, -27,
00811 -27, -27, -27, -27, -27, -27, -27, -27, -27, -27,
00812 -27, -27, -27, -27, -27, -27, -27, -27, -27, -27,
00813 -27, 47, -27, -27, -27, -27, -27, -27, -27, -27,
00814 -27, -27, -27, -27, -27, -27, -27, -27, -27, -27,
00815 -27, -27, -27, -27, -27, -27, -27, -27, -27, -27,
00816
00817 -27, -27, -27, -27, -27, -27, -27, -27, -27, -27,
00818 -27, -27, -27, -27, -27, -27, -27, -27, -27, -27,
00819 -27, -27, -27, -27, -27, -27, -27, -27, -27, -27,
00820 -27, -27, -27, -27, -27, -27, -27, -27
00821 },
00822
00823 {
00824 7, -28, -28, -28, -28, -28, -28, -28, -28, -28,
00825 -28, -28, -28, -28, -28, -28, -28, -28, -28, -28,
00826 -28, -28, -28, -28, -28, -28, -28, -28, -28, -28,
00827 -28, -28, -28, -28, -28, -28, -28, -28, -28, -28,
00828 -28, -28, -28, -28, -28, -28, -28, -28, -28, -28,
00829 -28, -28, -28, -28, -28, -28, -28, -28, -28, -28,
00830
00831 -28, -28, -28, -28, -28, -28, -28, -28, -28, -28,
00832 -28, -28, -28, -28, -28, -28, -28, -28, -28, -28,
00833 -28, -28, -28, -28, -28, -28, -28, -28, -28, -28,
00834 -28, -28, -28, -28, -28, -28, -28, -28, -28, -28,
00835 -28, -28, -28, -28, -28, -28, -28, -28, -28, -28,
00836 -28, -28, -28, -28, -28, -28, -28, -28, -28, -28,
00837 -28, -28, -28, -28, -28, -28, -28, -28
00838 },
00839
00840 {
00841 7, -29, -29, -29, -29, -29, -29, -29, -29, -29,
00842 -29, -29, -29, -29, -29, -29, -29, -29, -29, -29,
00843 -29, -29, -29, -29, -29, -29, -29, -29, -29, -29,
00844
00845 -29, -29, -29, -29, -29, -29, -29, -29, -29, -29,
00846 -29, -29, -29, -29, -29, -29, -29, -29, -29, -29,
00847 -29, -29, -29, -29, -29, -29, -29, -29, -29, -29,
00848 -29, -29, -29, -29, -29, -29, -29, -29, -29, -29,
00849 -29, -29, -29, -29, -29, -29, -29, -29, -29, -29,
00850 -29, -29, -29, -29, -29, -29, -29, -29, -29, -29,
00851 -29, -29, -29, -29, -29, -29, -29, -29, -29, -29,
00852 -29, -29, -29, -29, -29, -29, -29, -29, -29, -29,
00853 -29, -29, -29, -29, -29, -29, -29, -29, -29, -29,
00854 -29, -29, -29, -29, 48, -29, -29, -29
00855
00856 },
00857
00858 {
00859 7, 49, 49, 49, 49, 49, 49, 49, 49, 49,
00860 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
00861 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
00862 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
00863 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
00864 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
00865 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
00866 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
00867 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
00868 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
00869
00870 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
00871 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
00872 49, 49, 49, 50, 49, 51, 49, 49
00873 },
00874
00875 {
00876 7, -31, -31, -31, -31, -31, -31, -31, -31, -31,
00877 -31, -31, -31, -31, -31, -31, -31, -31, -31, -31,
00878 -31, -31, -31, -31, -31, -31, -31, -31, -31, -31,
00879 -31, -31, -31, -31, -31, -31, -31, -31, -31, -31,
00880 -31, -31, -31, -31, -31, -31, -31, -31, -31, -31,
00881 -31, -31, -31, -31, -31, -31, -31, -31, -31, -31,
00882 -31, -31, -31, -31, -31, -31, -31, -31, -31, -31,
00883
00884 -31, -31, -31, -31, -31, -31, -31, -31, -31, -31,
00885 -31, -31, -31, -31, -31, -31, -31, -31, -31, -31,
00886 -31, -31, -31, -31, -31, -31, -31, -31, -31, -31,
00887 -31, -31, -31, -31, -31, -31, -31, -31, -31, -31,
00888 -31, -31, -31, -31, -31, -31, -31, -31, -31, -31,
00889 -31, -31, -31, -31, -31, -31, -31, -31
00890 },
00891
00892 {
00893 7, -32, -32, -32, -32, -32, -32, -32, -32, -32,
00894 -32, -32, -32, -32, -32, -32, -32, -32, -32, -32,
00895 -32, -32, -32, -32, -32, -32, -32, -32, -32, -32,
00896 -32, -32, -32, -32, -32, -32, -32, -32, -32, -32,
00897
00898 -32, -32, -32, -32, -32, -32, -32, -32, -32, -32,
00899 -32, -32, -32, -32, -32, -32, -32, -32, -32, -32,
00900 -32, -32, -32, -32, -32, -32, -32, -32, -32, -32,
00901 -32, -32, -32, -32, -32, -32, -32, -32, -32, -32,
00902 -32, -32, -32, -32, -32, -32, -32, -32, -32, -32,
00903 -32, -32, -32, -32, -32, -32, -32, -32, -32, -32,
00904 -32, -32, -32, -32, -32, -32, -32, -32, -32, -32,
00905 -32, -32, -32, -32, -32, -32, -32, -32, -32, -32,
00906 -32, -32, -32, -32, -32, -32, -32, -32
00907 },
00908
00909 {
00910 7, 52, 52, 52, 52, 52, 52, 52, 52, -33,
00911
00912 -33, 52, 52, -33, 52, 52, 52, 52, 52, 52,
00913 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
00914 52, 52, -33, -33, 52, 52, -33, -33, -33, 52,
00915 -33, -33, -33, -33, 52, -33, 52, -33, 52, 52,
00916 52, 52, 52, 52, 52, 52, 52, 52, -33, 52,
00917 -33, -33, -33, -33, 52, 52, 52, 52, 52, 52,
00918 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
00919 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
00920 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
00921 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
00922
00923 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
00924 52, 52, 52, 52, -33, 52, 52, 52
00925 },
00926
00927 {
00928 7, -34, -34, -34, -34, -34, -34, -34, -34, -34,
00929 -34, -34, -34, -34, -34, -34, -34, -34, -34, -34,
00930 -34, -34, -34, -34, -34, -34, -34, -34, -34, -34,
00931 -34, -34, -34, -34, -34, -34, -34, -34, -34, -34,
00932 -34, -34, -34, -34, -34, -34, -34, -34, -34, -34,
00933 -34, -34, -34, -34, -34, -34, -34, -34, -34, -34,
00934 -34, -34, -34, -34, -34, -34, -34, -34, -34, -34,
00935 -34, -34, -34, -34, -34, -34, -34, -34, -34, -34,
00936
00937 -34, -34, -34, -34, -34, -34, -34, -34, -34, -34,
00938 -34, -34, -34, -34, -34, -34, -34, -34, -34, -34,
00939 -34, -34, -34, -34, -34, -34, -34, -34, -34, -34,
00940 -34, -34, -34, -34, -34, -34, -34, -34, -34, -34,
00941 -34, -34, -34, -34, -34, -34, -34, -34
00942 },
00943
00944 {
00945 7, -35, -35, -35, -35, -35, -35, -35, -35, -35,
00946 -35, -35, -35, -35, -35, -35, -35, -35, -35, -35,
00947 -35, -35, -35, -35, -35, -35, -35, -35, -35, -35,
00948 -35, -35, -35, -35, -35, -35, -35, -35, -35, -35,
00949 -35, -35, -35, -35, -35, -35, -35, -35, -35, -35,
00950
00951 -35, -35, -35, -35, -35, -35, -35, -35, -35, -35,
00952 -35, -35, -35, -35, -35, -35, -35, -35, -35, -35,
00953 -35, -35, -35, -35, -35, -35, -35, -35, -35, -35,
00954 -35, -35, -35, -35, -35, -35, -35, -35, -35, -35,
00955 -35, -35, -35, -35, -35, -35, -35, -35, -35, -35,
00956 -35, -35, -35, -35, -35, -35, -35, -35, -35, -35,
00957 -35, -35, -35, -35, -35, -35, -35, -35, -35, -35,
00958 -35, -35, -35, 53, -35, -35, -35, -35
00959 },
00960
00961 {
00962 7, -36, -36, -36, -36, -36, -36, -36, -36, -36,
00963 -36, -36, -36, -36, -36, -36, -36, -36, -36, -36,
00964
00965 -36, -36, -36, -36, -36, -36, -36, -36, -36, -36,
00966 -36, -36, -36, -36, -36, -36, -36, -36, -36, -36,
00967 -36, -36, -36, -36, -36, -36, -36, -36, -36, -36,
00968 -36, -36, -36, -36, -36, -36, -36, -36, -36, -36,
00969 -36, -36, -36, -36, -36, -36, -36, -36, -36, -36,
00970 -36, -36, -36, -36, -36, -36, -36, -36, -36, -36,
00971 -36, -36, -36, -36, -36, -36, -36, -36, -36, -36,
00972 -36, -36, -36, -36, -36, -36, -36, -36, -36, -36,
00973 -36, -36, -36, -36, -36, -36, -36, -36, -36, -36,
00974 -36, -36, -36, -36, -36, -36, -36, -36, -36, -36,
00975
00976 -36, -36, -36, -36, -36, -36, -36, -36
00977 },
00978
00979 {
00980 7, 37, 37, 37, 37, 37, 37, 37, 37, 37,
00981 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
00982 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
00983 37, 37, 37, 37, 38, 37, 37, 37, 37, 37,
00984 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
00985 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
00986 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
00987 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
00988 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
00989
00990 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
00991 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
00992 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
00993 37, 37, 37, 37, 37, 37, 37, 37
00994 },
00995
00996 {
00997 7, -38, -38, -38, -38, -38, -38, -38, -38, -38,
00998 -38, -38, -38, -38, -38, -38, -38, -38, -38, -38,
00999 -38, -38, -38, -38, -38, -38, -38, -38, -38, -38,
01000 -38, -38, -38, -38, -38, -38, -38, -38, -38, -38,
01001 -38, -38, -38, -38, -38, -38, -38, -38, -38, -38,
01002 -38, -38, -38, -38, -38, -38, -38, -38, -38, -38,
01003
01004 -38, -38, -38, -38, -38, -38, -38, -38, -38, -38,
01005 -38, -38, -38, -38, -38, -38, -38, -38, -38, -38,
01006 -38, -38, -38, -38, -38, -38, -38, -38, -38, -38,
01007 -38, -38, -38, -38, -38, -38, -38, -38, -38, -38,
01008 -38, -38, -38, -38, -38, -38, -38, -38, -38, -38,
01009 -38, -38, -38, -38, -38, -38, -38, -38, -38, -38,
01010 -38, -38, -38, -38, -38, -38, -38, -38
01011 },
01012
01013 {
01014 7, -39, -39, -39, -39, -39, -39, -39, -39, -39,
01015 -39, -39, -39, -39, -39, -39, -39, -39, -39, -39,
01016 -39, -39, -39, -39, -39, -39, -39, -39, -39, -39,
01017
01018 -39, -39, -39, -39, -39, 39, 39, -39, -39, 39,
01019 -39, -39, -39, -39, 39, -39, 39, -39, 39, 39,
01020 39, 39, 39, 39, 39, 39, 39, 39, -39, 39,
01021 -39, -39, -39, -39, 39, 39, 39, 39, 39, 39,
01022 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
01023 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
01024 39, -39, 39, -39, 39, 39, -39, 39, 39, 39,
01025 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
01026 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
01027 39, 39, 39, -39, -39, -39, -39, -39
01028
01029 },
01030
01031 {
01032 7, -40, -40, -40, -40, -40, -40, -40, -40, -40,
01033 -40, -40, -40, -40, -40, -40, -40, -40, -40, -40,
01034 -40, -40, -40, -40, -40, -40, -40, -40, -40, -40,
01035 -40, -40, -40, -40, -40, -40, -40, -40, -40, -40,
01036 -40, -40, -40, -40, -40, -40, -40, -40, -40, -40,
01037 -40, -40, -40, -40, -40, -40, -40, -40, -40, -40,
01038 -40, -40, -40, -40, -40, -40, -40, -40, -40, -40,
01039 -40, -40, -40, -40, -40, -40, -40, -40, -40, -40,
01040 -40, -40, -40, -40, -40, -40, -40, -40, -40, -40,
01041 -40, -40, -40, -40, -40, -40, -40, -40, -40, -40,
01042
01043 -40, -40, -40, -40, -40, -40, -40, -40, -40, -40,
01044 -40, -40, -40, -40, -40, -40, -40, -40, -40, -40,
01045 -40, -40, -40, -40, -40, -40, -40, -40
01046 },
01047
01048 {
01049 7, -41, -41, -41, -41, -41, -41, -41, -41, -41,
01050 -41, -41, -41, -41, -41, -41, -41, -41, -41, -41,
01051 -41, -41, -41, -41, -41, -41, -41, -41, -41, -41,
01052 -41, -41, -41, -41, -41, -41, -41, -41, -41, -41,
01053 -41, -41, -41, -41, -41, -41, -41, -41, -41, -41,
01054 -41, -41, -41, -41, -41, -41, -41, -41, -41, -41,
01055 -41, -41, -41, -41, -41, -41, -41, -41, -41, -41,
01056
01057 -41, -41, -41, -41, -41, -41, -41, -41, -41, -41,
01058 -41, -41, -41, -41, -41, -41, -41, -41, -41, -41,
01059 -41, -41, -41, -41, -41, -41, -41, -41, -41, -41,
01060 -41, -41, -41, -41, -41, -41, -41, -41, -41, -41,
01061 -41, -41, -41, -41, -41, -41, -41, -41, -41, -41,
01062 -41, -41, -41, -41, -41, -41, -41, -41
01063 },
01064
01065 {
01066 7, -42, -42, -42, -42, -42, -42, -42, -42, -42,
01067 -42, -42, -42, -42, -42, -42, -42, -42, -42, -42,
01068 -42, -42, -42, -42, -42, -42, -42, -42, -42, -42,
01069 -42, -42, -42, -42, -42, 39, 39, -42, -42, 39,
01070
01071 -42, -42, -42, -42, 39, -42, 39, -42, 42, 42,
01072 42, 42, 42, 42, 42, 42, 42, 42, -42, 39,
01073 -42, -42, -42, -42, 39, 39, 39, 39, 39, 39,
01074 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
01075 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
01076 39, -42, 39, -42, 39, 39, -42, 39, 39, 39,
01077 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
01078 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
01079 39, 39, 39, -42, -42, -42, -42, -42
01080 },
01081
01082 {
01083 7, -43, -43, -43, -43, -43, -43, -43, -43, -43,
01084
01085 -43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
01086 -43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
01087 -43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
01088 -43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
01089 -43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
01090 -43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
01091 -43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
01092 -43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
01093 -43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
01094 -43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
01095
01096 -43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
01097 -43, -43, -43, -43, -43, -43, -43, -43
01098 },
01099
01100 {
01101 7, -44, -44, -44, -44, -44, -44, -44, -44, -44,
01102 -44, -44, -44, -44, -44, -44, -44, -44, -44, -44,
01103 -44, -44, -44, -44, -44, -44, -44, -44, -44, -44,
01104 -44, -44, -44, -44, -44, -44, -44, -44, -44, -44,
01105 -44, -44, -44, -44, -44, -44, -44, -44, -44, -44,
01106 -44, -44, -44, -44, -44, -44, -44, -44, -44, -44,
01107 -44, -44, -44, -44, -44, -44, -44, -44, -44, -44,
01108 -44, -44, -44, -44, -44, -44, -44, -44, -44, -44,
01109
01110 -44, -44, -44, -44, -44, -44, -44, -44, -44, -44,
01111 -44, -44, -44, -44, -44, -44, -44, -44, -44, -44,
01112 -44, -44, -44, -44, -44, -44, -44, -44, -44, -44,
01113 -44, -44, -44, -44, -44, -44, -44, -44, -44, -44,
01114 -44, -44, -44, -44, -44, -44, -44, -44
01115 },
01116
01117 {
01118 7, -45, -45, -45, -45, -45, -45, -45, -45, -45,
01119 -45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
01120 -45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
01121 -45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
01122 -45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
01123
01124 -45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
01125 -45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
01126 -45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
01127 -45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
01128 -45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
01129 -45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
01130 -45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
01131 -45, -45, -45, -45, -45, -45, -45, -45
01132 },
01133
01134 {
01135 7, -46, -46, -46, -46, -46, -46, -46, -46, -46,
01136 -46, -46, -46, -46, -46, -46, -46, -46, -46, -46,
01137
01138 -46, -46, -46, -46, -46, -46, -46, -46, -46, -46,
01139 -46, -46, -46, -46, -46, -46, -46, -46, -46, -46,
01140 -46, -46, -46, -46, -46, -46, -46, -46, -46, -46,
01141 -46, -46, -46, -46, -46, -46, -46, -46, -46, -46,
01142 -46, -46, -46, -46, -46, -46, -46, -46, -46, -46,
01143 -46, -46, -46, -46, -46, -46, -46, -46, -46, -46,
01144 -46, -46, -46, -46, -46, -46, -46, -46, -46, -46,
01145 -46, -46, -46, -46, -46, -46, -46, -46, -46, -46,
01146 -46, -46, -46, -46, -46, -46, -46, -46, -46, -46,
01147 -46, -46, -46, -46, -46, -46, -46, -46, -46, -46,
01148
01149 -46, -46, -46, -46, -46, -46, -46, -46
01150 },
01151
01152 {
01153 7, -47, -47, -47, -47, -47, -47, -47, -47, -47,
01154 -47, -47, -47, -47, -47, -47, -47, -47, -47, -47,
01155 -47, -47, -47, -47, -47, -47, -47, -47, -47, -47,
01156 -47, -47, -47, -47, -47, -47, -47, -47, -47, -47,
01157 -47, -47, -47, -47, -47, -47, -47, -47, -47, -47,
01158 -47, -47, -47, -47, -47, -47, -47, -47, -47, -47,
01159 -47, -47, -47, -47, -47, -47, -47, -47, -47, -47,
01160 -47, -47, -47, -47, -47, -47, -47, -47, -47, -47,
01161 -47, -47, -47, -47, -47, -47, -47, -47, -47, -47,
01162
01163 -47, -47, -47, -47, -47, -47, -47, -47, -47, -47,
01164 -47, -47, -47, -47, -47, -47, -47, -47, -47, -47,
01165 -47, -47, -47, -47, -47, -47, -47, -47, -47, -47,
01166 -47, -47, -47, -47, -47, -47, -47, -47
01167 },
01168
01169 {
01170 7, -48, -48, -48, -48, -48, -48, -48, -48, -48,
01171 -48, -48, -48, -48, -48, -48, -48, -48, -48, -48,
01172 -48, -48, -48, -48, -48, -48, -48, -48, -48, -48,
01173 -48, -48, -48, -48, -48, -48, -48, -48, -48, -48,
01174 -48, -48, -48, -48, -48, -48, -48, -48, -48, -48,
01175 -48, -48, -48, -48, -48, -48, -48, -48, -48, -48,
01176
01177 -48, -48, -48, -48, -48, -48, -48, -48, -48, -48,
01178 -48, -48, -48, -48, -48, -48, -48, -48, -48, -48,
01179 -48, -48, -48, -48, -48, -48, -48, -48, -48, -48,
01180 -48, -48, -48, -48, -48, -48, -48, -48, -48, -48,
01181 -48, -48, -48, -48, -48, -48, -48, -48, -48, -48,
01182 -48, -48, -48, -48, -48, -48, -48, -48, -48, -48,
01183 -48, -48, -48, -48, -48, -48, -48, -48
01184 },
01185
01186 {
01187 7, 49, 49, 49, 49, 49, 49, 49, 49, 49,
01188 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
01189 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
01190
01191 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
01192 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
01193 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
01194 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
01195 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
01196 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
01197 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
01198 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
01199 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
01200 49, 49, 49, 50, 49, 51, 49, 49
01201
01202 },
01203
01204 {
01205 7, -50, -50, -50, -50, -50, -50, -50, -50, -50,
01206 -50, -50, -50, -50, -50, -50, -50, -50, -50, -50,
01207 -50, -50, -50, -50, -50, -50, -50, -50, -50, -50,
01208 -50, -50, -50, -50, -50, -50, -50, -50, -50, -50,
01209 -50, -50, -50, -50, -50, -50, -50, -50, -50, -50,
01210 -50, -50, -50, -50, -50, -50, -50, -50, -50, -50,
01211 -50, -50, -50, -50, -50, -50, -50, -50, -50, -50,
01212 -50, -50, -50, -50, -50, -50, -50, -50, -50, -50,
01213 -50, -50, -50, -50, -50, -50, -50, -50, -50, -50,
01214 -50, -50, -50, -50, -50, -50, -50, -50, -50, -50,
01215
01216 -50, -50, -50, -50, -50, -50, -50, -50, -50, -50,
01217 -50, -50, -50, -50, -50, -50, -50, -50, -50, -50,
01218 -50, -50, -50, -50, -50, -50, -50, -50
01219 },
01220
01221 {
01222 7, -51, -51, -51, -51, -51, -51, -51, -51, -51,
01223 -51, -51, -51, -51, -51, -51, -51, -51, -51, -51,
01224 -51, -51, -51, -51, -51, -51, -51, -51, -51, -51,
01225 -51, -51, -51, -51, -51, -51, -51, -51, -51, -51,
01226 -51, -51, -51, -51, -51, -51, -51, -51, -51, -51,
01227 -51, -51, -51, -51, -51, -51, -51, -51, -51, -51,
01228 -51, -51, -51, -51, -51, -51, -51, -51, -51, -51,
01229
01230 -51, -51, -51, -51, -51, -51, -51, -51, -51, -51,
01231 -51, -51, -51, -51, -51, -51, -51, -51, -51, -51,
01232 -51, -51, -51, -51, -51, -51, -51, -51, -51, -51,
01233 -51, -51, -51, -51, -51, -51, -51, -51, -51, -51,
01234 -51, -51, -51, -51, -51, -51, -51, -51, -51, -51,
01235 -51, -51, -51, -51, -51, -51, -51, -51
01236 },
01237
01238 {
01239 7, 52, 52, 52, 52, 52, 52, 52, 52, -52,
01240 -52, 52, 52, -52, 52, 52, 52, 52, 52, 52,
01241 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
01242 52, 52, -52, -52, 52, 52, -52, -52, -52, 52,
01243
01244 -52, -52, -52, -52, 52, -52, 52, -52, 52, 52,
01245 52, 52, 52, 52, 52, 52, 52, 52, -52, 52,
01246 -52, -52, -52, -52, 52, 52, 52, 52, 52, 52,
01247 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
01248 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
01249 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
01250 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
01251 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
01252 52, 52, 52, 52, -52, 52, 52, 52
01253 },
01254
01255 {
01256 7, -53, -53, -53, -53, -53, -53, -53, -53, -53,
01257
01258 -53, -53, -53, -53, -53, -53, -53, -53, -53, -53,
01259 -53, -53, -53, -53, -53, -53, -53, -53, -53, -53,
01260 -53, -53, -53, -53, -53, -53, -53, -53, -53, -53,
01261 -53, -53, -53, -53, -53, -53, -53, -53, -53, -53,
01262 -53, -53, -53, -53, -53, -53, -53, -53, -53, -53,
01263 -53, -53, -53, -53, -53, -53, -53, -53, -53, -53,
01264 -53, -53, -53, -53, -53, -53, -53, -53, -53, -53,
01265 -53, -53, -53, -53, -53, -53, -53, -53, -53, -53,
01266 -53, -53, -53, -53, -53, -53, -53, -53, -53, -53,
01267 -53, -53, -53, -53, -53, -53, -53, -53, -53, -53,
01268
01269 -53, -53, -53, -53, -53, -53, -53, -53, -53, -53,
01270 -53, -53, -53, -53, -53, -53, -53, -53
01271 },
01272
01273 } ;
01274
01275 static yy_state_type yy_get_previous_state (yyscan_t yyscanner );
01276 static yy_state_type yy_try_NUL_trans (yy_state_type current_state ,yyscan_t yyscanner);
01277 static int yy_get_next_buffer (yyscan_t yyscanner );
01278 static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner );
01279
01280
01281
01282
01283 #define YY_DO_BEFORE_ACTION \
01284 yyg->yytext_ptr = yy_bp; \
01285 yyg->yytext_ptr -= yyg->yy_more_len; \
01286 yyleng = (size_t) (yy_cp - yyg->yytext_ptr); \
01287 yyg->yy_hold_char = *yy_cp; \
01288 *yy_cp = '\0'; \
01289 yyg->yy_c_buf_p = yy_cp;
01290
01291 #define YY_NUM_RULES 35
01292 #define YY_END_OF_BUFFER 36
01293
01294
01295 struct yy_trans_info
01296 {
01297 flex_int32_t yy_verify;
01298 flex_int32_t yy_nxt;
01299 };
01300 static yyconst flex_int16_t yy_accept[54] =
01301 { 0,
01302 0, 0, 0, 0, 32, 32, 36, 35, 25, 27,
01303 19, 35, 29, 29, 17, 2, 22, 23, 15, 13,
01304 14, 16, 28, 20, 9, 3, 8, 18, 1, 35,
01305 31, 30, 32, 33, 33, 12, 0, 26, 29, 24,
01306 5, 28, 21, 11, 6, 7, 10, 4, 0, 31,
01307 30, 32, 34
01308 } ;
01309
01310 static yyconst yy_state_type yy_NUL_trans[54] =
01311 { 0,
01312 8, 8, 30, 30, 33, 33, 0, 0, 0, 0,
01313 0, 37, 0, 0, 0, 0, 0, 0, 0, 0,
01314 0, 0, 0, 0, 0, 0, 0, 0, 0, 49,
01315 0, 0, 52, 0, 0, 0, 37, 0, 0, 0,
01316 0, 0, 0, 0, 0, 0, 0, 0, 49, 0,
01317 0, 52, 0
01318 } ;
01319
01320
01321
01322
01323 #define REJECT reject_used_but_not_detected
01324 #define yymore() (yyg->yy_more_flag = 1)
01325 #define YY_MORE_ADJ yyg->yy_more_len
01326 #define YY_RESTORE_YY_MORE_OFFSET
01327 #line 1 "ast_expr2.fl"
01328 #line 2 "ast_expr2.fl"
01329
01330
01331
01332
01333
01334
01335
01336
01337
01338
01339
01340
01341
01342
01343
01344
01345
01346
01347
01348
01349
01350
01351
01352 #include "asterisk.h"
01353
01354 #if !defined(STANDALONE_AEL)
01355 ASTERISK_FILE_VERSION(__FILE__, "$Revision: 153337 $")
01356 #endif
01357
01358 #include <sys/types.h>
01359 #include <stdio.h>
01360 #include <stdlib.h>
01361 #include <string.h>
01362 #include <locale.h>
01363 #include <ctype.h>
01364 #if !defined(SOLARIS) && !defined(__CYGWIN__)
01365
01366 #else
01367 #define quad_t int64_t
01368 #endif
01369 #include <errno.h>
01370 #include <regex.h>
01371 #include <limits.h>
01372
01373 #include "asterisk/ast_expr.h"
01374 #include "asterisk/logger.h"
01375 #include "asterisk/strings.h"
01376
01377 enum valtype {
01378 AST_EXPR_integer, AST_EXPR_numeric_string, AST_EXPR_string
01379 } ;
01380
01381 struct val {
01382 enum valtype type;
01383 union {
01384 char *s;
01385 quad_t i;
01386 } u;
01387 } ;
01388
01389 #include "ast_expr2.h"
01390
01391 #define SET_COLUMNS do { \
01392 yylloc_param->first_column = (int)(yyg->yytext_r - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf); \
01393 yylloc_param->last_column += yyleng - 1; \
01394 yylloc_param->first_line = yylloc_param->last_line = 1; \
01395 } while (0)
01396
01397 #define SET_STRING do { \
01398 yylval_param->val = calloc(1, sizeof(struct val)); \
01399 yylval_param->val->type = AST_EXPR_string; \
01400 yylval_param->val->u.s = strdup(yytext); \
01401 } while (0)
01402
01403 #define SET_NUMERIC_STRING do { \
01404 yylval_param->val = calloc(1, sizeof(struct val)); \
01405 yylval_param->val->type = AST_EXPR_numeric_string; \
01406 yylval_param->val->u.s = strdup(yytext); \
01407 } while (0)
01408
01409 struct parse_io
01410 {
01411 char *string;
01412 struct val *val;
01413 yyscan_t scanner;
01414 };
01415
01416 void ast_yyset_column(int column_no, yyscan_t yyscanner);
01417 int ast_yyget_column(yyscan_t yyscanner);
01418 static int curlycount = 0;
01419 static char *expr2_token_subst(const char *mess);
01420
01421 #line 1422 "ast_expr2f.c"
01422
01423 #define INITIAL 0
01424 #define var 1
01425 #define trail 2
01426
01427 #ifndef YY_NO_UNISTD_H
01428
01429
01430
01431
01432 #include <unistd.h>
01433 #endif
01434
01435 #ifndef YY_EXTRA_TYPE
01436 #define YY_EXTRA_TYPE void *
01437 #endif
01438
01439
01440 struct yyguts_t
01441 {
01442
01443
01444 YY_EXTRA_TYPE yyextra_r;
01445
01446
01447 FILE *yyin_r, *yyout_r;
01448 size_t yy_buffer_stack_top;
01449 size_t yy_buffer_stack_max;
01450 YY_BUFFER_STATE * yy_buffer_stack;
01451 char yy_hold_char;
01452 int yy_n_chars;
01453 int yyleng_r;
01454 char *yy_c_buf_p;
01455 int yy_init;
01456 int yy_start;
01457 int yy_did_buffer_switch_on_eof;
01458 int yy_start_stack_ptr;
01459 int yy_start_stack_depth;
01460 int *yy_start_stack;
01461 yy_state_type yy_last_accepting_state;
01462 char* yy_last_accepting_cpos;
01463
01464 int yylineno_r;
01465 int yy_flex_debug_r;
01466
01467 char *yytext_r;
01468 int yy_more_flag;
01469 int yy_more_len;
01470
01471 YYSTYPE * yylval_r;
01472
01473 YYLTYPE * yylloc_r;
01474
01475 };
01476
01477 static int yy_init_globals (yyscan_t yyscanner );
01478
01479
01480
01481 # define yylval yyg->yylval_r
01482
01483 # define yylloc yyg->yylloc_r
01484
01485 int ast_yylex_init (yyscan_t* scanner);
01486
01487 int ast_yylex_init_extra (YY_EXTRA_TYPE user_defined,yyscan_t* scanner);
01488
01489
01490
01491
01492 int ast_yylex_destroy (yyscan_t yyscanner );
01493
01494 int ast_yyget_debug (yyscan_t yyscanner );
01495
01496 void ast_yyset_debug (int debug_flag ,yyscan_t yyscanner );
01497
01498 YY_EXTRA_TYPE ast_yyget_extra (yyscan_t yyscanner );
01499
01500 void ast_yyset_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner );
01501
01502 FILE *ast_yyget_in (yyscan_t yyscanner );
01503
01504 void ast_yyset_in (FILE * in_str ,yyscan_t yyscanner );
01505
01506 FILE *ast_yyget_out (yyscan_t yyscanner );
01507
01508 void ast_yyset_out (FILE * out_str ,yyscan_t yyscanner );
01509
01510 int ast_yyget_leng (yyscan_t yyscanner );
01511
01512 char *ast_yyget_text (yyscan_t yyscanner );
01513
01514 int ast_yyget_lineno (yyscan_t yyscanner );
01515
01516 void ast_yyset_lineno (int line_number ,yyscan_t yyscanner );
01517
01518 YYSTYPE * ast_yyget_lval (yyscan_t yyscanner );
01519
01520 void ast_yyset_lval (YYSTYPE * yylval_param ,yyscan_t yyscanner );
01521
01522 YYLTYPE *ast_yyget_lloc (yyscan_t yyscanner );
01523
01524 void ast_yyset_lloc (YYLTYPE * yylloc_param ,yyscan_t yyscanner );
01525
01526
01527
01528
01529
01530 #ifndef YY_SKIP_YYWRAP
01531 #ifdef __cplusplus
01532 extern "C" int ast_yywrap (yyscan_t yyscanner );
01533 #else
01534 extern int ast_yywrap (yyscan_t yyscanner );
01535 #endif
01536 #endif
01537
01538 static void yyunput (int c,char *buf_ptr ,yyscan_t yyscanner);
01539
01540 #ifndef yytext_ptr
01541 static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner);
01542 #endif
01543
01544 #ifdef YY_NEED_STRLEN
01545 static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner);
01546 #endif
01547
01548 #ifndef YY_NO_INPUT
01549
01550 #ifdef __cplusplus
01551 static int yyinput (yyscan_t yyscanner );
01552 #else
01553 static int input (yyscan_t yyscanner );
01554 #endif
01555
01556 #endif
01557
01558
01559 #ifndef YY_READ_BUF_SIZE
01560 #define YY_READ_BUF_SIZE 8192
01561 #endif
01562
01563
01564 #ifndef ECHO
01565
01566
01567
01568 #define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
01569 #endif
01570
01571
01572
01573
01574 #ifndef YY_INPUT
01575 #define YY_INPUT(buf,result,max_size) \
01576 errno=0; \
01577 while ( (result = read( fileno(yyin), (char *) buf, max_size )) < 0 ) \
01578 { \
01579 if( errno != EINTR) \
01580 { \
01581 YY_FATAL_ERROR( "input in flex scanner failed" ); \
01582 break; \
01583 } \
01584 errno=0; \
01585 clearerr(yyin); \
01586 }\
01587 \
01588
01589 #endif
01590
01591
01592
01593
01594
01595 #ifndef yyterminate
01596 #define yyterminate() return YY_NULL
01597 #endif
01598
01599
01600 #ifndef YY_START_STACK_INCR
01601 #define YY_START_STACK_INCR 25
01602 #endif
01603
01604
01605 #ifndef YY_FATAL_ERROR
01606 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
01607 #endif
01608
01609
01610
01611
01612
01613
01614 #ifndef YY_DECL
01615 #define YY_DECL_IS_OURS 1
01616
01617 extern int ast_yylex \
01618 (YYSTYPE * yylval_param,YYLTYPE * yylloc_param ,yyscan_t yyscanner);
01619
01620 #define YY_DECL int ast_yylex \
01621 (YYSTYPE * yylval_param, YYLTYPE * yylloc_param , yyscan_t yyscanner)
01622 #endif
01623
01624
01625
01626
01627 #ifndef YY_USER_ACTION
01628 #define YY_USER_ACTION
01629 #endif
01630
01631
01632 #ifndef YY_BREAK
01633 #define YY_BREAK break;
01634 #endif
01635
01636 #define YY_RULE_SETUP \
01637 YY_USER_ACTION
01638
01639
01640
01641 YY_DECL
01642 {
01643 register yy_state_type yy_current_state;
01644 register char *yy_cp, *yy_bp;
01645 register int yy_act;
01646 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
01647
01648 #line 105 "ast_expr2.fl"
01649
01650
01651 #line 1652 "ast_expr2f.c"
01652
01653 yylval = yylval_param;
01654
01655 yylloc = yylloc_param;
01656
01657 if ( !yyg->yy_init )
01658 {
01659 yyg->yy_init = 1;
01660
01661 #ifdef YY_USER_INIT
01662 YY_USER_INIT;
01663 #endif
01664
01665 if ( ! yyg->yy_start )
01666 yyg->yy_start = 1;
01667
01668 if ( ! yyin )
01669 yyin = stdin;
01670
01671 if ( ! yyout )
01672 yyout = stdout;
01673
01674 if ( ! YY_CURRENT_BUFFER ) {
01675 ast_yyensure_buffer_stack (yyscanner);
01676 YY_CURRENT_BUFFER_LVALUE =
01677 ast_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
01678 }
01679
01680 ast_yy_load_buffer_state(yyscanner );
01681 }
01682
01683 while ( 1 )
01684 {
01685 yyg->yy_more_len = 0;
01686 if ( yyg->yy_more_flag )
01687 {
01688 yyg->yy_more_len = yyg->yy_c_buf_p - yyg->yytext_ptr;
01689 yyg->yy_more_flag = 0;
01690 }
01691 yy_cp = yyg->yy_c_buf_p;
01692
01693
01694 *yy_cp = yyg->yy_hold_char;
01695
01696
01697
01698
01699 yy_bp = yy_cp;
01700
01701 yy_current_state = yyg->yy_start;
01702 yy_match:
01703 while ( (yy_current_state = yy_nxt[yy_current_state][ YY_SC_TO_UI(*yy_cp) ]) > 0 )
01704 {
01705 if ( yy_accept[yy_current_state] )
01706 {
01707 yyg->yy_last_accepting_state = yy_current_state;
01708 yyg->yy_last_accepting_cpos = yy_cp;
01709 }
01710
01711 ++yy_cp;
01712 }
01713
01714 yy_current_state = -yy_current_state;
01715
01716 yy_find_action:
01717 yy_act = yy_accept[yy_current_state];
01718
01719 YY_DO_BEFORE_ACTION;
01720
01721 do_action:
01722
01723 switch ( yy_act )
01724 {
01725 case 0:
01726
01727 *yy_cp = yyg->yy_hold_char;
01728 yy_cp = yyg->yy_last_accepting_cpos + 1;
01729 yy_current_state = yyg->yy_last_accepting_state;
01730 goto yy_find_action;
01731
01732 case 1:
01733 YY_RULE_SETUP
01734 #line 107 "ast_expr2.fl"
01735 { SET_COLUMNS; SET_STRING; return TOK_OR;}
01736 YY_BREAK
01737 case 2:
01738 YY_RULE_SETUP
01739 #line 108 "ast_expr2.fl"
01740 { SET_COLUMNS; SET_STRING; return TOK_AND;}
01741 YY_BREAK
01742 case 3:
01743 YY_RULE_SETUP
01744 #line 109 "ast_expr2.fl"
01745 { SET_COLUMNS; SET_STRING; return TOK_EQ;}
01746 YY_BREAK
01747 case 4:
01748 YY_RULE_SETUP
01749 #line 110 "ast_expr2.fl"
01750 { SET_COLUMNS; SET_STRING; return TOK_OR;}
01751 YY_BREAK
01752 case 5:
01753 YY_RULE_SETUP
01754 #line 111 "ast_expr2.fl"
01755 { SET_COLUMNS; SET_STRING; return TOK_AND;}
01756 YY_BREAK
01757 case 6:
01758 YY_RULE_SETUP
01759 #line 112 "ast_expr2.fl"
01760 { SET_COLUMNS; SET_STRING; return TOK_EQ;}
01761 YY_BREAK
01762 case 7:
01763 YY_RULE_SETUP
01764 #line 113 "ast_expr2.fl"
01765 { SET_COLUMNS; SET_STRING; return TOK_EQTILDE;}
01766 YY_BREAK
01767 case 8:
01768 YY_RULE_SETUP
01769 #line 114 "ast_expr2.fl"
01770 { SET_COLUMNS; SET_STRING; return TOK_GT;}
01771 YY_BREAK
01772 case 9:
01773 YY_RULE_SETUP
01774 #line 115 "ast_expr2.fl"
01775 { SET_COLUMNS; SET_STRING; return TOK_LT;}
01776 YY_BREAK
01777 case 10:
01778 YY_RULE_SETUP
01779 #line 116 "ast_expr2.fl"
01780 { SET_COLUMNS; SET_STRING; return TOK_GE;}
01781 YY_BREAK
01782 case 11:
01783 YY_RULE_SETUP
01784 #line 117 "ast_expr2.fl"
01785 { SET_COLUMNS; SET_STRING; return TOK_LE;}
01786 YY_BREAK
01787 case 12:
01788 YY_RULE_SETUP
01789 #line 118 "ast_expr2.fl"
01790 { SET_COLUMNS; SET_STRING; return TOK_NE;}
01791 YY_BREAK
01792 case 13:
01793 YY_RULE_SETUP
01794 #line 119 "ast_expr2.fl"
01795 { SET_COLUMNS; SET_STRING; return TOK_PLUS;}
01796 YY_BREAK
01797 case 14:
01798 YY_RULE_SETUP
01799 #line 120 "ast_expr2.fl"
01800 { SET_COLUMNS; SET_STRING; return TOK_MINUS;}
01801 YY_BREAK
01802 case 15:
01803 YY_RULE_SETUP
01804 #line 121 "ast_expr2.fl"
01805 { SET_COLUMNS; SET_STRING; return TOK_MULT;}
01806 YY_BREAK
01807 case 16:
01808 YY_RULE_SETUP
01809 #line 122 "ast_expr2.fl"
01810 { SET_COLUMNS; SET_STRING; return TOK_DIV;}
01811 YY_BREAK
01812 case 17:
01813 YY_RULE_SETUP
01814 #line 123 "ast_expr2.fl"
01815 { SET_COLUMNS; SET_STRING; return TOK_MOD;}
01816 YY_BREAK
01817 case 18:
01818 YY_RULE_SETUP
01819 #line 124 "ast_expr2.fl"
01820 { SET_COLUMNS; SET_STRING; return TOK_COND;}
01821 YY_BREAK
01822 case 19:
01823 YY_RULE_SETUP
01824 #line 125 "ast_expr2.fl"
01825 { SET_COLUMNS; SET_STRING; return TOK_COMPL;}
01826 YY_BREAK
01827 case 20:
01828 YY_RULE_SETUP
01829 #line 126 "ast_expr2.fl"
01830 { SET_COLUMNS; SET_STRING; return TOK_COLON;}
01831 YY_BREAK
01832 case 21:
01833 YY_RULE_SETUP
01834 #line 127 "ast_expr2.fl"
01835 { SET_COLUMNS; SET_STRING; return TOK_COLONCOLON;}
01836 YY_BREAK
01837 case 22:
01838 YY_RULE_SETUP
01839 #line 128 "ast_expr2.fl"
01840 { SET_COLUMNS; SET_STRING; return TOK_LP;}
01841 YY_BREAK
01842 case 23:
01843 YY_RULE_SETUP
01844 #line 129 "ast_expr2.fl"
01845 { SET_COLUMNS; SET_STRING; return TOK_RP;}
01846 YY_BREAK
01847 case 24:
01848 YY_RULE_SETUP
01849 #line 130 "ast_expr2.fl"
01850 {
01851
01852
01853
01854
01855 curlycount = 0;
01856 BEGIN(var);
01857 yymore();
01858 }
01859 YY_BREAK
01860 case 25:
01861 YY_RULE_SETUP
01862 #line 140 "ast_expr2.fl"
01863 {}
01864 YY_BREAK
01865 case 26:
01866
01867 YY_RULE_SETUP
01868 #line 141 "ast_expr2.fl"
01869 {SET_COLUMNS; SET_STRING; return TOKEN;}
01870 YY_BREAK
01871 case 27:
01872
01873 YY_RULE_SETUP
01874 #line 143 "ast_expr2.fl"
01875 {}
01876 YY_BREAK
01877 case 28:
01878 YY_RULE_SETUP
01879 #line 144 "ast_expr2.fl"
01880 {
01881 SET_COLUMNS;
01882
01883
01884
01885 SET_NUMERIC_STRING;
01886 return TOKEN;
01887 }
01888 YY_BREAK
01889 case 29:
01890 YY_RULE_SETUP
01891 #line 153 "ast_expr2.fl"
01892 {
01893 SET_COLUMNS;
01894 SET_STRING;
01895 return TOKEN;
01896 }
01897 YY_BREAK
01898 case 30:
01899
01900 YY_RULE_SETUP
01901 #line 160 "ast_expr2.fl"
01902 {
01903 curlycount--;
01904 if (curlycount < 0) {
01905 BEGIN(trail);
01906 yymore();
01907 } else {
01908 yymore();
01909 }
01910 }
01911 YY_BREAK
01912 case 31:
01913
01914 YY_RULE_SETUP
01915 #line 170 "ast_expr2.fl"
01916 {
01917 curlycount++;
01918 yymore();
01919 }
01920 YY_BREAK
01921 case 32:
01922 YY_RULE_SETUP
01923 #line 176 "ast_expr2.fl"
01924 {
01925 BEGIN(0);
01926 SET_COLUMNS;
01927 SET_STRING;
01928 return TOKEN;
01929 }
01930 YY_BREAK
01931 case 33:
01932
01933 YY_RULE_SETUP
01934 #line 183 "ast_expr2.fl"
01935 {
01936 char c = yytext[yyleng-1];
01937 BEGIN(0);
01938 unput(c);
01939 SET_COLUMNS;
01940 SET_STRING;
01941 return TOKEN;
01942 }
01943 YY_BREAK
01944 case 34:
01945 YY_RULE_SETUP
01946 #line 192 "ast_expr2.fl"
01947 {
01948 curlycount = 0;
01949 BEGIN(var);
01950 yymore();
01951 }
01952 YY_BREAK
01953 case YY_STATE_EOF(trail):
01954 #line 198 "ast_expr2.fl"
01955 {
01956 BEGIN(0);
01957 SET_COLUMNS;
01958 SET_STRING;
01959 return TOKEN;
01960
01961 }
01962 YY_BREAK
01963 case 35:
01964 YY_RULE_SETUP
01965 #line 206 "ast_expr2.fl"
01966 ECHO;
01967 YY_BREAK
01968 #line 1969 "ast_expr2f.c"
01969 case YY_STATE_EOF(INITIAL):
01970 case YY_STATE_EOF(var):
01971 yyterminate();
01972
01973 case YY_END_OF_BUFFER:
01974 {
01975
01976 int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1;
01977
01978
01979 *yy_cp = yyg->yy_hold_char;
01980 YY_RESTORE_YY_MORE_OFFSET
01981
01982 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
01983 {
01984
01985
01986
01987
01988
01989
01990
01991
01992
01993 yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
01994 YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
01995 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
01996 }
01997
01998
01999
02000
02001
02002
02003
02004
02005 if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
02006 {
02007 yy_state_type yy_next_state;
02008
02009 yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text;
02010
02011 yy_current_state = yy_get_previous_state( yyscanner );
02012
02013
02014
02015
02016
02017
02018
02019
02020
02021
02022 yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner);
02023
02024 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
02025
02026 if ( yy_next_state )
02027 {
02028
02029 yy_cp = ++yyg->yy_c_buf_p;
02030 yy_current_state = yy_next_state;
02031 goto yy_match;
02032 }
02033
02034 else
02035 {
02036 yy_cp = yyg->yy_c_buf_p;
02037 goto yy_find_action;
02038 }
02039 }
02040
02041 else switch ( yy_get_next_buffer( yyscanner ) )
02042 {
02043 case EOB_ACT_END_OF_FILE:
02044 {
02045 yyg->yy_did_buffer_switch_on_eof = 0;
02046
02047 if ( ast_yywrap(yyscanner ) )
02048 {
02049
02050
02051
02052
02053
02054
02055
02056
02057
02058 yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ;
02059
02060 yy_act = YY_STATE_EOF(YY_START);
02061 goto do_action;
02062 }
02063
02064 else
02065 {
02066 if ( ! yyg->yy_did_buffer_switch_on_eof )
02067 YY_NEW_FILE;
02068 }
02069 break;
02070 }
02071
02072 case EOB_ACT_CONTINUE_SCAN:
02073 yyg->yy_c_buf_p =
02074 yyg->yytext_ptr + yy_amount_of_matched_text;
02075
02076 yy_current_state = yy_get_previous_state( yyscanner );
02077
02078 yy_cp = yyg->yy_c_buf_p;
02079 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
02080 goto yy_match;
02081
02082 case EOB_ACT_LAST_MATCH:
02083 yyg->yy_c_buf_p =
02084 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars];
02085
02086 yy_current_state = yy_get_previous_state( yyscanner );
02087
02088 yy_cp = yyg->yy_c_buf_p;
02089 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
02090 goto yy_find_action;
02091 }
02092 break;
02093 }
02094
02095 default:
02096 YY_FATAL_ERROR(
02097 "fatal flex scanner internal error--no action found" );
02098 }
02099 }
02100 }
02101
02102
02103
02104
02105
02106
02107
02108
02109 static int yy_get_next_buffer (yyscan_t yyscanner)
02110 {
02111 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02112 register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
02113 register char *source = yyg->yytext_ptr;
02114 register int number_to_move, i;
02115 int ret_val;
02116
02117 if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
02118 YY_FATAL_ERROR(
02119 "fatal flex scanner internal error--end of buffer missed" );
02120
02121 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
02122 {
02123 if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 )
02124 {
02125
02126
02127
02128 return EOB_ACT_END_OF_FILE;
02129 }
02130
02131 else
02132 {
02133
02134
02135
02136 return EOB_ACT_LAST_MATCH;
02137 }
02138 }
02139
02140
02141
02142
02143 number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1;
02144
02145 for ( i = 0; i < number_to_move; ++i )
02146 *(dest++) = *(source++);
02147
02148 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
02149
02150
02151
02152 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
02153
02154 else
02155 {
02156 int num_to_read =
02157 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
02158
02159 while ( num_to_read <= 0 )
02160 {
02161
02162
02163 YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
02164
02165 int yy_c_buf_p_offset =
02166 (int) (yyg->yy_c_buf_p - b->yy_ch_buf);
02167
02168 if ( b->yy_is_our_buffer )
02169 {
02170 int new_size = b->yy_buf_size * 2;
02171
02172 if ( new_size <= 0 )
02173 b->yy_buf_size += b->yy_buf_size / 8;
02174 else
02175 b->yy_buf_size *= 2;
02176
02177 b->yy_ch_buf = (char *)
02178
02179 ast_yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ,yyscanner );
02180 }
02181 else
02182
02183 b->yy_ch_buf = 0;
02184
02185 if ( ! b->yy_ch_buf )
02186 YY_FATAL_ERROR(
02187 "fatal error - scanner input buffer overflow" );
02188
02189 yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
02190
02191 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
02192 number_to_move - 1;
02193
02194 }
02195
02196 if ( num_to_read > YY_READ_BUF_SIZE )
02197 num_to_read = YY_READ_BUF_SIZE;
02198
02199
02200 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
02201 yyg->yy_n_chars, (size_t) num_to_read );
02202
02203 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
02204 }
02205
02206 if ( yyg->yy_n_chars == 0 )
02207 {
02208 if ( number_to_move == YY_MORE_ADJ )
02209 {
02210 ret_val = EOB_ACT_END_OF_FILE;
02211 ast_yyrestart(yyin ,yyscanner);
02212 }
02213
02214 else
02215 {
02216 ret_val = EOB_ACT_LAST_MATCH;
02217 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
02218 YY_BUFFER_EOF_PENDING;
02219 }
02220 }
02221
02222 else
02223 ret_val = EOB_ACT_CONTINUE_SCAN;
02224
02225 if ((yy_size_t) (yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
02226
02227 yy_size_t new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1);
02228 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) ast_yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ,yyscanner );
02229 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
02230 YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
02231 }
02232
02233 yyg->yy_n_chars += number_to_move;
02234 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR;
02235 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
02236
02237 yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
02238
02239 return ret_val;
02240 }
02241
02242
02243
02244 static yy_state_type yy_get_previous_state (yyscan_t yyscanner)
02245 {
02246 register yy_state_type yy_current_state;
02247 register char *yy_cp;
02248 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02249
02250 yy_current_state = yyg->yy_start;
02251
02252 for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
02253 {
02254 if ( *yy_cp )
02255 {
02256 yy_current_state = yy_nxt[yy_current_state][YY_SC_TO_UI(*yy_cp)];
02257 }
02258 else
02259 yy_current_state = yy_NUL_trans[yy_current_state];
02260 if ( yy_accept[yy_current_state] )
02261 {
02262 yyg->yy_last_accepting_state = yy_current_state;
02263 yyg->yy_last_accepting_cpos = yy_cp;
02264 }
02265 }
02266
02267 return yy_current_state;
02268 }
02269
02270
02271
02272
02273
02274
02275 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state , yyscan_t yyscanner)
02276 {
02277 register int yy_is_jam;
02278 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02279 register char *yy_cp = yyg->yy_c_buf_p;
02280
02281 yy_current_state = yy_NUL_trans[yy_current_state];
02282 yy_is_jam = (yy_current_state == 0);
02283
02284 if ( ! yy_is_jam )
02285 {
02286 if ( yy_accept[yy_current_state] )
02287 {
02288 yyg->yy_last_accepting_state = yy_current_state;
02289 yyg->yy_last_accepting_cpos = yy_cp;
02290 }
02291 }
02292
02293 return yy_is_jam ? 0 : yy_current_state;
02294 }
02295
02296 static void yyunput (int c, register char * yy_bp , yyscan_t yyscanner)
02297 {
02298 register char *yy_cp;
02299 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02300
02301 yy_cp = yyg->yy_c_buf_p;
02302
02303
02304 *yy_cp = yyg->yy_hold_char;
02305
02306 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
02307 {
02308
02309 register int number_to_move = yyg->yy_n_chars + 2;
02310 register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
02311 YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
02312 register char *source =
02313 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
02314
02315 while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
02316 *--dest = *--source;
02317
02318 yy_cp += (int) (dest - source);
02319 yy_bp += (int) (dest - source);
02320 YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
02321 yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
02322
02323 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
02324 YY_FATAL_ERROR( "flex scanner push-back overflow" );
02325 }
02326
02327 *--yy_cp = (char) c;
02328
02329 yyg->yytext_ptr = yy_bp;
02330 yyg->yy_hold_char = *yy_cp;
02331 yyg->yy_c_buf_p = yy_cp;
02332 }
02333
02334 #ifndef YY_NO_INPUT
02335 #ifdef __cplusplus
02336 static int yyinput (yyscan_t yyscanner)
02337 #else
02338 static int input (yyscan_t yyscanner)
02339 #endif
02340
02341 {
02342 int c;
02343 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02344
02345 *yyg->yy_c_buf_p = yyg->yy_hold_char;
02346
02347 if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
02348 {
02349
02350
02351
02352
02353 if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
02354
02355 *yyg->yy_c_buf_p = '\0';
02356
02357 else
02358 {
02359 int offset = yyg->yy_c_buf_p - yyg->yytext_ptr;
02360 ++yyg->yy_c_buf_p;
02361
02362 switch ( yy_get_next_buffer( yyscanner ) )
02363 {
02364 case EOB_ACT_LAST_MATCH:
02365
02366
02367
02368
02369
02370
02371
02372
02373
02374
02375
02376 ast_yyrestart(yyin ,yyscanner);
02377
02378
02379
02380 case EOB_ACT_END_OF_FILE:
02381 {
02382 if ( ast_yywrap(yyscanner ) )
02383 return EOF;
02384
02385 if ( ! yyg->yy_did_buffer_switch_on_eof )
02386 YY_NEW_FILE;
02387 #ifdef __cplusplus
02388 return yyinput(yyscanner);
02389 #else
02390 return input(yyscanner);
02391 #endif
02392 }
02393
02394 case EOB_ACT_CONTINUE_SCAN:
02395 yyg->yy_c_buf_p = yyg->yytext_ptr + offset;
02396 break;
02397 }
02398 }
02399 }
02400
02401 c = *(unsigned char *) yyg->yy_c_buf_p;
02402 *yyg->yy_c_buf_p = '\0';
02403 yyg->yy_hold_char = *++yyg->yy_c_buf_p;
02404
02405 return c;
02406 }
02407 #endif
02408
02409
02410
02411
02412
02413
02414 void ast_yyrestart (FILE * input_file , yyscan_t yyscanner)
02415 {
02416 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02417
02418 if ( ! YY_CURRENT_BUFFER ){
02419 ast_yyensure_buffer_stack (yyscanner);
02420 YY_CURRENT_BUFFER_LVALUE =
02421 ast_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
02422 }
02423
02424 ast_yy_init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner);
02425 ast_yy_load_buffer_state(yyscanner );
02426 }
02427
02428
02429
02430
02431
02432 void ast_yy_switch_to_buffer (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
02433 {
02434 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02435
02436
02437
02438
02439
02440
02441 ast_yyensure_buffer_stack (yyscanner);
02442 if ( YY_CURRENT_BUFFER == new_buffer )
02443 return;
02444
02445 if ( YY_CURRENT_BUFFER )
02446 {
02447
02448 *yyg->yy_c_buf_p = yyg->yy_hold_char;
02449 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
02450 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
02451 }
02452
02453 YY_CURRENT_BUFFER_LVALUE = new_buffer;
02454 ast_yy_load_buffer_state(yyscanner );
02455
02456
02457
02458
02459
02460
02461 yyg->yy_did_buffer_switch_on_eof = 1;
02462 }
02463
02464 static void ast_yy_load_buffer_state (yyscan_t yyscanner)
02465 {
02466 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02467 yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
02468 yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
02469 yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
02470 yyg->yy_hold_char = *yyg->yy_c_buf_p;
02471 }
02472
02473
02474
02475
02476
02477
02478
02479 YY_BUFFER_STATE ast_yy_create_buffer (FILE * file, int size , yyscan_t yyscanner)
02480 {
02481 YY_BUFFER_STATE b;
02482
02483 b = (YY_BUFFER_STATE) ast_yyalloc(sizeof( struct yy_buffer_state ) ,yyscanner );
02484 if ( ! b )
02485 YY_FATAL_ERROR( "out of dynamic memory in ast_yy_create_buffer()" );
02486
02487 b->yy_buf_size = size;
02488
02489
02490
02491
02492 b->yy_ch_buf = (char *) ast_yyalloc(b->yy_buf_size + 2 ,yyscanner );
02493 if ( ! b->yy_ch_buf )
02494 YY_FATAL_ERROR( "out of dynamic memory in ast_yy_create_buffer()" );
02495
02496 b->yy_is_our_buffer = 1;
02497
02498 ast_yy_init_buffer(b,file ,yyscanner);
02499
02500 return b;
02501 }
02502
02503
02504
02505
02506
02507 void ast_yy_delete_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner)
02508 {
02509 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02510
02511 if ( ! b )
02512 return;
02513
02514 if ( b == YY_CURRENT_BUFFER )
02515 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
02516
02517 if ( b->yy_is_our_buffer )
02518 ast_yyfree((void *) b->yy_ch_buf ,yyscanner );
02519
02520 ast_yyfree((void *) b ,yyscanner );
02521 }
02522
02523 #ifndef __cplusplus
02524 extern int isatty (int );
02525 #endif
02526
02527
02528
02529
02530
02531 static void ast_yy_init_buffer (YY_BUFFER_STATE b, FILE * file , yyscan_t yyscanner)
02532
02533 {
02534 int oerrno = errno;
02535 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02536
02537 ast_yy_flush_buffer(b ,yyscanner);
02538
02539 b->yy_input_file = file;
02540 b->yy_fill_buffer = 1;
02541
02542
02543
02544
02545
02546 if (b != YY_CURRENT_BUFFER){
02547 b->yy_bs_lineno = 1;
02548 b->yy_bs_column = 0;
02549 }
02550
02551 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
02552
02553 errno = oerrno;
02554 }
02555
02556
02557
02558
02559
02560 void ast_yy_flush_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner)
02561 {
02562 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02563 if ( ! b )
02564 return;
02565
02566 b->yy_n_chars = 0;
02567
02568
02569
02570
02571
02572 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
02573 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
02574
02575 b->yy_buf_pos = &b->yy_ch_buf[0];
02576
02577 b->yy_at_bol = 1;
02578 b->yy_buffer_status = YY_BUFFER_NEW;
02579
02580 if ( b == YY_CURRENT_BUFFER )
02581 ast_yy_load_buffer_state(yyscanner );
02582 }
02583
02584
02585
02586
02587
02588
02589
02590 void ast_yypush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
02591 {
02592 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02593 if (new_buffer == NULL)
02594 return;
02595
02596 ast_yyensure_buffer_stack(yyscanner);
02597
02598
02599 if ( YY_CURRENT_BUFFER )
02600 {
02601
02602 *yyg->yy_c_buf_p = yyg->yy_hold_char;
02603 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
02604 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
02605 }
02606
02607
02608 if (YY_CURRENT_BUFFER)
02609 yyg->yy_buffer_stack_top++;
02610 YY_CURRENT_BUFFER_LVALUE = new_buffer;
02611
02612
02613 ast_yy_load_buffer_state(yyscanner );
02614 yyg->yy_did_buffer_switch_on_eof = 1;
02615 }
02616
02617
02618
02619
02620
02621 void ast_yypop_buffer_state (yyscan_t yyscanner)
02622 {
02623 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02624 if (!YY_CURRENT_BUFFER)
02625 return;
02626
02627 ast_yy_delete_buffer(YY_CURRENT_BUFFER ,yyscanner);
02628 YY_CURRENT_BUFFER_LVALUE = NULL;
02629 if (yyg->yy_buffer_stack_top > 0)
02630 --yyg->yy_buffer_stack_top;
02631
02632 if (YY_CURRENT_BUFFER) {
02633 ast_yy_load_buffer_state(yyscanner );
02634 yyg->yy_did_buffer_switch_on_eof = 1;
02635 }
02636 }
02637
02638
02639
02640
02641 static void ast_yyensure_buffer_stack (yyscan_t yyscanner)
02642 {
02643 int num_to_alloc;
02644 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02645
02646 if (!yyg->yy_buffer_stack) {
02647
02648
02649
02650
02651
02652 num_to_alloc = 1;
02653 yyg->yy_buffer_stack = (struct yy_buffer_state**)ast_yyalloc
02654 (num_to_alloc * sizeof(struct yy_buffer_state*)
02655 , yyscanner);
02656 if ( ! yyg->yy_buffer_stack )
02657 YY_FATAL_ERROR( "out of dynamic memory in ast_yyensure_buffer_stack()" );
02658
02659 memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*));
02660
02661 yyg->yy_buffer_stack_max = num_to_alloc;
02662 yyg->yy_buffer_stack_top = 0;
02663 return;
02664 }
02665
02666 if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){
02667
02668
02669 int grow_size = 8 ;
02670
02671 num_to_alloc = yyg->yy_buffer_stack_max + grow_size;
02672 yyg->yy_buffer_stack = (struct yy_buffer_state**)ast_yyrealloc
02673 (yyg->yy_buffer_stack,
02674 num_to_alloc * sizeof(struct yy_buffer_state*)
02675 , yyscanner);
02676 if ( ! yyg->yy_buffer_stack )
02677 YY_FATAL_ERROR( "out of dynamic memory in ast_yyensure_buffer_stack()" );
02678
02679
02680 memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*));
02681 yyg->yy_buffer_stack_max = num_to_alloc;
02682 }
02683 }
02684
02685
02686
02687
02688
02689
02690
02691 YY_BUFFER_STATE ast_yy_scan_buffer (char * base, yy_size_t size , yyscan_t yyscanner)
02692 {
02693 YY_BUFFER_STATE b;
02694
02695 if ( size < 2 ||
02696 base[size-2] != YY_END_OF_BUFFER_CHAR ||
02697 base[size-1] != YY_END_OF_BUFFER_CHAR )
02698
02699 return 0;
02700
02701 b = (YY_BUFFER_STATE) ast_yyalloc(sizeof( struct yy_buffer_state ) ,yyscanner );
02702 if ( ! b )
02703 YY_FATAL_ERROR( "out of dynamic memory in ast_yy_scan_buffer()" );
02704
02705 b->yy_buf_size = size - 2;
02706 b->yy_buf_pos = b->yy_ch_buf = base;
02707 b->yy_is_our_buffer = 0;
02708 b->yy_input_file = 0;
02709 b->yy_n_chars = b->yy_buf_size;
02710 b->yy_is_interactive = 0;
02711 b->yy_at_bol = 1;
02712 b->yy_fill_buffer = 0;
02713 b->yy_buffer_status = YY_BUFFER_NEW;
02714
02715 ast_yy_switch_to_buffer(b ,yyscanner );
02716
02717 return b;
02718 }
02719
02720
02721
02722
02723
02724
02725
02726
02727
02728 YY_BUFFER_STATE ast_yy_scan_string (yyconst char * yystr , yyscan_t yyscanner)
02729 {
02730
02731 return ast_yy_scan_bytes(yystr,strlen(yystr) ,yyscanner);
02732 }
02733
02734
02735
02736
02737
02738
02739
02740
02741 YY_BUFFER_STATE ast_yy_scan_bytes (yyconst char * yybytes, int _yybytes_len , yyscan_t yyscanner)
02742 {
02743 YY_BUFFER_STATE b;
02744 char *buf;
02745 yy_size_t n;
02746 int i;
02747
02748
02749 n = _yybytes_len + 2;
02750 buf = (char *) ast_yyalloc(n ,yyscanner );
02751 if ( ! buf )
02752 YY_FATAL_ERROR( "out of dynamic memory in ast_yy_scan_bytes()" );
02753
02754 for ( i = 0; i < _yybytes_len; ++i )
02755 buf[i] = yybytes[i];
02756
02757 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
02758
02759 b = ast_yy_scan_buffer(buf,n ,yyscanner);
02760 if ( ! b )
02761 YY_FATAL_ERROR( "bad buffer in ast_yy_scan_bytes()" );
02762
02763
02764
02765
02766 b->yy_is_our_buffer = 1;
02767
02768 return b;
02769 }
02770
02771 #ifndef YY_EXIT_FAILURE
02772 #define YY_EXIT_FAILURE 2
02773 #endif
02774
02775 static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner)
02776 {
02777 (void) fprintf( stderr, "%s\n", msg );
02778 exit( YY_EXIT_FAILURE );
02779 }
02780
02781
02782
02783 #undef yyless
02784 #define yyless(n) \
02785 do \
02786 { \
02787 \
02788 int yyless_macro_arg = (n); \
02789 YY_LESS_LINENO(yyless_macro_arg);\
02790 yytext[yyleng] = yyg->yy_hold_char; \
02791 yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
02792 yyg->yy_hold_char = *yyg->yy_c_buf_p; \
02793 *yyg->yy_c_buf_p = '\0'; \
02794 yyleng = yyless_macro_arg; \
02795 } \
02796 while ( 0 )
02797
02798
02799
02800
02801
02802
02803 YY_EXTRA_TYPE ast_yyget_extra (yyscan_t yyscanner)
02804 {
02805 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02806 return yyextra;
02807 }
02808
02809
02810
02811
02812 int ast_yyget_lineno (yyscan_t yyscanner)
02813 {
02814 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02815
02816 if (! YY_CURRENT_BUFFER)
02817 return 0;
02818
02819 return yylineno;
02820 }
02821
02822
02823
02824
02825 int ast_yyget_column (yyscan_t yyscanner)
02826 {
02827 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02828
02829 if (! YY_CURRENT_BUFFER)
02830 return 0;
02831
02832 return yycolumn;
02833 }
02834
02835
02836
02837
02838 FILE *ast_yyget_in (yyscan_t yyscanner)
02839 {
02840 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02841 return yyin;
02842 }
02843
02844
02845
02846
02847 FILE *ast_yyget_out (yyscan_t yyscanner)
02848 {
02849 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02850 return yyout;
02851 }
02852
02853
02854
02855
02856 int ast_yyget_leng (yyscan_t yyscanner)
02857 {
02858 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02859 return yyleng;
02860 }
02861
02862
02863
02864
02865
02866 char *ast_yyget_text (yyscan_t yyscanner)
02867 {
02868 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02869 return yytext;
02870 }
02871
02872
02873
02874
02875
02876 void ast_yyset_extra (YY_EXTRA_TYPE user_defined , yyscan_t yyscanner)
02877 {
02878 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02879 yyextra = user_defined ;
02880 }
02881
02882
02883
02884
02885
02886 void ast_yyset_lineno (int line_number , yyscan_t yyscanner)
02887 {
02888 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02889
02890
02891 if (! YY_CURRENT_BUFFER )
02892 yy_fatal_error( "ast_yyset_lineno called with no buffer" , yyscanner);
02893
02894 yylineno = line_number;
02895 }
02896
02897
02898
02899
02900
02901 void ast_yyset_column (int column_no , yyscan_t yyscanner)
02902 {
02903 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02904
02905
02906 if (! YY_CURRENT_BUFFER )
02907 yy_fatal_error( "ast_yyset_column called with no buffer" , yyscanner);
02908
02909 yycolumn = column_no;
02910 }
02911
02912
02913
02914
02915
02916
02917
02918 void ast_yyset_in (FILE * in_str , yyscan_t yyscanner)
02919 {
02920 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02921 yyin = in_str ;
02922 }
02923
02924 void ast_yyset_out (FILE * out_str , yyscan_t yyscanner)
02925 {
02926 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02927 yyout = out_str ;
02928 }
02929
02930 int ast_yyget_debug (yyscan_t yyscanner)
02931 {
02932 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02933 return yy_flex_debug;
02934 }
02935
02936 void ast_yyset_debug (int bdebug , yyscan_t yyscanner)
02937 {
02938 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02939 yy_flex_debug = bdebug ;
02940 }
02941
02942
02943
02944 YYSTYPE * ast_yyget_lval (yyscan_t yyscanner)
02945 {
02946 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02947 return yylval;
02948 }
02949
02950 void ast_yyset_lval (YYSTYPE * yylval_param , yyscan_t yyscanner)
02951 {
02952 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02953 yylval = yylval_param;
02954 }
02955
02956 YYLTYPE *ast_yyget_lloc (yyscan_t yyscanner)
02957 {
02958 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02959 return yylloc;
02960 }
02961
02962 void ast_yyset_lloc (YYLTYPE * yylloc_param , yyscan_t yyscanner)
02963 {
02964 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02965 yylloc = yylloc_param;
02966 }
02967
02968
02969
02970
02971
02972
02973
02974
02975 int ast_yylex_init(yyscan_t* ptr_yy_globals)
02976
02977 {
02978 if (ptr_yy_globals == NULL){
02979 errno = EINVAL;
02980 return 1;
02981 }
02982
02983 *ptr_yy_globals = (yyscan_t) ast_yyalloc ( sizeof( struct yyguts_t ), NULL );
02984
02985 if (*ptr_yy_globals == NULL){
02986 errno = ENOMEM;
02987 return 1;
02988 }
02989
02990
02991 memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
02992
02993 return yy_init_globals ( *ptr_yy_globals );
02994 }
02995
02996
02997
02998
02999
03000
03001
03002
03003
03004 int ast_yylex_init_extra(YY_EXTRA_TYPE yy_user_defined,yyscan_t* ptr_yy_globals )
03005
03006 {
03007 struct yyguts_t dummy_yyguts;
03008
03009 ast_yyset_extra (yy_user_defined, &dummy_yyguts);
03010
03011 if (ptr_yy_globals == NULL){
03012 errno = EINVAL;
03013 return 1;
03014 }
03015
03016 *ptr_yy_globals = (yyscan_t) ast_yyalloc ( sizeof( struct yyguts_t ), &dummy_yyguts );
03017
03018 if (*ptr_yy_globals == NULL){
03019 errno = ENOMEM;
03020 return 1;
03021 }
03022
03023
03024
03025 memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
03026
03027 ast_yyset_extra (yy_user_defined, *ptr_yy_globals);
03028
03029 return yy_init_globals ( *ptr_yy_globals );
03030 }
03031
03032 static int yy_init_globals (yyscan_t yyscanner)
03033 {
03034 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03035
03036
03037
03038
03039 yyg->yy_buffer_stack = 0;
03040 yyg->yy_buffer_stack_top = 0;
03041 yyg->yy_buffer_stack_max = 0;
03042 yyg->yy_c_buf_p = (char *) 0;
03043 yyg->yy_init = 0;
03044 yyg->yy_start = 0;
03045
03046 yyg->yy_start_stack_ptr = 0;
03047 yyg->yy_start_stack_depth = 0;
03048 yyg->yy_start_stack = NULL;
03049
03050
03051 #ifdef YY_STDINIT
03052 yyin = stdin;
03053 yyout = stdout;
03054 #else
03055 yyin = (FILE *) 0;
03056 yyout = (FILE *) 0;
03057 #endif
03058
03059
03060
03061
03062 return 0;
03063 }
03064
03065
03066 int ast_yylex_destroy (yyscan_t yyscanner)
03067 {
03068 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03069
03070
03071 while(YY_CURRENT_BUFFER){
03072 ast_yy_delete_buffer(YY_CURRENT_BUFFER ,yyscanner );
03073 YY_CURRENT_BUFFER_LVALUE = NULL;
03074 ast_yypop_buffer_state(yyscanner);
03075 }
03076
03077
03078 ast_yyfree(yyg->yy_buffer_stack ,yyscanner);
03079 yyg->yy_buffer_stack = NULL;
03080
03081
03082 ast_yyfree(yyg->yy_start_stack ,yyscanner );
03083 yyg->yy_start_stack = NULL;
03084
03085
03086
03087 yy_init_globals( yyscanner);
03088
03089
03090 ast_yyfree ( yyscanner , yyscanner );
03091 yyscanner = NULL;
03092 return 0;
03093 }
03094
03095
03096
03097
03098
03099 #ifndef yytext_ptr
03100 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner)
03101 {
03102 register int i;
03103 for ( i = 0; i < n; ++i )
03104 s1[i] = s2[i];
03105 }
03106 #endif
03107
03108 #ifdef YY_NEED_STRLEN
03109 static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner)
03110 {
03111 register int n;
03112 for ( n = 0; s[n]; ++n )
03113 ;
03114
03115 return n;
03116 }
03117 #endif
03118
03119 void *ast_yyalloc (yy_size_t size , yyscan_t yyscanner)
03120 {
03121 return (void *) malloc( size );
03122 }
03123
03124 void *ast_yyrealloc (void * ptr, yy_size_t size , yyscan_t yyscanner)
03125 {
03126
03127
03128
03129
03130
03131
03132
03133 return (void *) realloc( (char *) ptr, size );
03134 }
03135
03136 #define YYTABLES_NAME "yytables"
03137
03138 #line 206 "ast_expr2.fl"
03139
03140
03141
03142
03143
03144
03145
03146
03147
03148 int ast_yyparse(void *);
03149 int ast_yyerror(const char *, YYLTYPE *, struct parse_io *);
03150
03151 void ast_yyfree(void *ptr, yyscan_t yyscanner)
03152 {
03153 if (ptr)
03154
03155
03156 free( (char *) ptr );
03157 }
03158
03159 int ast_expr(char *expr, char *buf, int length)
03160 {
03161 struct parse_io io;
03162 int return_value = 0;
03163
03164 memset(&io, 0, sizeof(io));
03165 io.string = expr;
03166
03167 ast_yylex_init(&io.scanner);
03168
03169 ast_yy_scan_string(expr, io.scanner);
03170
03171 ast_yyparse ((void *) &io);
03172
03173 ast_yylex_destroy(io.scanner);
03174
03175 if (!io.val) {
03176 if (length > 1) {
03177 strcpy(buf, "0");
03178 return_value = 1;
03179 }
03180 } else {
03181 if (io.val->type == AST_EXPR_integer) {
03182 int res_length;
03183
03184 res_length = snprintf(buf, length, "%ld", (long int) io.val->u.i);
03185 return_value = (res_length <= length) ? res_length : length;
03186 } else {
03187 #if defined(STANDALONE) || defined(LOW_MEMORY) || defined(STANDALONE_AEL)
03188 strncpy(buf, io.val->u.s, length - 1);
03189 #else
03190 ast_copy_string(buf, io.val->u.s, length);
03191 #endif
03192 return_value = strlen(buf);
03193 free(io.val->u.s);
03194 }
03195 free(io.val);
03196 }
03197 return return_value;
03198 }
03199
03200
03201 char extra_error_message[4095];
03202 int extra_error_message_supplied = 0;
03203 void ast_expr_register_extra_error_info(char *message);
03204 void ast_expr_clear_extra_error_info(void);
03205
03206 void ast_expr_register_extra_error_info(char *message)
03207 {
03208 extra_error_message_supplied=1;
03209 strcpy(extra_error_message, message);
03210 }
03211
03212 void ast_expr_clear_extra_error_info(void)
03213 {
03214 extra_error_message_supplied=0;
03215 extra_error_message[0] = 0;
03216 }
03217
03218 static char *expr2_token_equivs1[] =
03219 {
03220 "TOKEN",
03221 "TOK_COND",
03222 "TOK_COLONCOLON",
03223 "TOK_OR",
03224 "TOK_AND",
03225 "TOK_EQ",
03226 "TOK_GT",
03227 "TOK_LT",
03228 "TOK_GE",
03229 "TOK_LE",
03230 "TOK_NE",
03231 "TOK_PLUS",
03232 "TOK_MINUS",
03233 "TOK_MULT",
03234 "TOK_DIV",
03235 "TOK_MOD",
03236 "TOK_COMPL",
03237 "TOK_COLON",
03238 "TOK_EQTILDE",
03239 "TOK_RP",
03240 "TOK_LP"
03241 };
03242
03243 static char *expr2_token_equivs2[] =
03244 {
03245 "<token>",
03246 "?",
03247 "::",
03248 "|",
03249 "&",
03250 "=",
03251 ">",
03252 "<",
03253 ">=",
03254 "<=",
03255 "!=",
03256 "+",
03257 "-",
03258 "*",
03259 "/",
03260 "%",
03261 "!",
03262 ":",
03263 "=~",
03264 ")",
03265 "("
03266 };
03267
03268
03269 static char *expr2_token_subst(const char *mess)
03270 {
03271
03272 int len=0,i;
03273 const char *p;
03274 char *res, *s,*t;
03275 int expr2_token_equivs_entries = sizeof(expr2_token_equivs1)/sizeof(char*);
03276
03277 for (p=mess; *p; p++) {
03278 for (i=0; i<expr2_token_equivs_entries; i++) {
03279 if ( strncmp(p,expr2_token_equivs1[i],strlen(expr2_token_equivs1[i])) == 0 )
03280 {
03281 len+=strlen(expr2_token_equivs2[i])+2;
03282 p += strlen(expr2_token_equivs1[i])-1;
03283 break;
03284 }
03285 }
03286 len++;
03287 }
03288 res = (char*)malloc(len+1);
03289 res[0] = 0;
03290 s = res;
03291 for (p=mess; *p;) {
03292 int found = 0;
03293 for (i=0; i<expr2_token_equivs_entries; i++) {
03294 if ( strncmp(p,expr2_token_equivs1[i],strlen(expr2_token_equivs1[i])) == 0 ) {
03295 *s++ = '\'';
03296 for (t=expr2_token_equivs2[i]; *t;) {
03297 *s++ = *t++;
03298 }
03299 *s++ = '\'';
03300 p += strlen(expr2_token_equivs1[i]);
03301 found = 1;
03302 break;
03303 }
03304 }
03305 if( !found )
03306 *s++ = *p++;
03307 }
03308 *s++ = 0;
03309 return res;
03310 }
03311
03312 int ast_yyerror (const char *s, yyltype *loc, struct parse_io *parseio )
03313 {
03314 struct yyguts_t * yyg = (struct yyguts_t*)(parseio->scanner);
03315 char spacebuf[8000];
03316 char spacebuf2[8000];
03317 int i=0;
03318 char *s2 = expr2_token_subst(s);
03319 spacebuf[0] = 0;
03320
03321 for(i=0;i< (int)(yytext - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf);i++) spacebuf2[i] = ' ';
03322
03323
03324
03325
03326
03327
03328
03329
03330
03331
03332 spacebuf2[i++]='^';
03333 spacebuf2[i]= 0;
03334
03335 #ifdef STANDALONE3
03336
03337 printf("ast_yyerror(): %s syntax error: %s; Input:\n%s\n%s\n",
03338 (extra_error_message_supplied?extra_error_message:""), s2, parseio->string,spacebuf2);
03339 #else
03340 ast_log(LOG_WARNING,"ast_yyerror(): %s syntax error: %s; Input:\n%s\n%s\n",
03341 (extra_error_message_supplied?extra_error_message:""), s2, parseio->string,spacebuf2);
03342 #endif
03343 #ifndef STANDALONE
03344 ast_log(LOG_WARNING,"If you have questions, please refer to doc/channelvariables.txt in the asterisk source.\n");
03345 #endif
03346 free(s2);
03347 return(0);
03348 }
03349