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