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