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: 73985 $")
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 #ifndef YY_NO_UNISTD_H
01421
01422
01423
01424
01425 #include <unistd.h>
01426 #endif
01427
01428 #ifndef YY_EXTRA_TYPE
01429 #define YY_EXTRA_TYPE void *
01430 #endif
01431
01432
01433 struct yyguts_t
01434 {
01435
01436
01437 YY_EXTRA_TYPE yyextra_r;
01438
01439
01440 FILE *yyin_r, *yyout_r;
01441 size_t yy_buffer_stack_top;
01442 size_t yy_buffer_stack_max;
01443 YY_BUFFER_STATE * yy_buffer_stack;
01444 char yy_hold_char;
01445 int yy_n_chars;
01446 int yyleng_r;
01447 char *yy_c_buf_p;
01448 int yy_init;
01449 int yy_start;
01450 int yy_did_buffer_switch_on_eof;
01451 int yy_start_stack_ptr;
01452 int yy_start_stack_depth;
01453 int *yy_start_stack;
01454 yy_state_type yy_last_accepting_state;
01455 char* yy_last_accepting_cpos;
01456
01457 int yylineno_r;
01458 int yy_flex_debug_r;
01459
01460 char *yytext_r;
01461 int yy_more_flag;
01462 int yy_more_len;
01463
01464 YYSTYPE * yylval_r;
01465
01466 YYLTYPE * yylloc_r;
01467
01468 };
01469
01470 static int yy_init_globals (yyscan_t yyscanner );
01471
01472
01473
01474 # define yylval yyg->yylval_r
01475
01476 # define yylloc yyg->yylloc_r
01477
01478
01479
01480
01481 int ast_yylex_destroy (yyscan_t yyscanner );
01482
01483 int ast_yyget_debug (yyscan_t yyscanner );
01484
01485 void ast_yyset_debug (int debug_flag ,yyscan_t yyscanner );
01486
01487 YY_EXTRA_TYPE ast_yyget_extra (yyscan_t yyscanner );
01488
01489 void ast_yyset_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner );
01490
01491 FILE *ast_yyget_in (yyscan_t yyscanner );
01492
01493 void ast_yyset_in (FILE * in_str ,yyscan_t yyscanner );
01494
01495 FILE *ast_yyget_out (yyscan_t yyscanner );
01496
01497 void ast_yyset_out (FILE * out_str ,yyscan_t yyscanner );
01498
01499 int ast_yyget_leng (yyscan_t yyscanner );
01500
01501 char *ast_yyget_text (yyscan_t yyscanner );
01502
01503 int ast_yyget_lineno (yyscan_t yyscanner );
01504
01505 void ast_yyset_lineno (int line_number ,yyscan_t yyscanner );
01506
01507 YYSTYPE * ast_yyget_lval (yyscan_t yyscanner );
01508
01509 void ast_yyset_lval (YYSTYPE * yylval_param ,yyscan_t yyscanner );
01510
01511 YYLTYPE *ast_yyget_lloc (yyscan_t yyscanner );
01512
01513 void ast_yyset_lloc (YYLTYPE * yylloc_param ,yyscan_t yyscanner );
01514
01515
01516
01517
01518
01519 #ifndef YY_SKIP_YYWRAP
01520 #ifdef __cplusplus
01521 extern "C" int ast_yywrap (yyscan_t yyscanner );
01522 #else
01523 extern int ast_yywrap (yyscan_t yyscanner );
01524 #endif
01525 #endif
01526
01527 static void yyunput (int c,char *buf_ptr ,yyscan_t yyscanner);
01528
01529 #ifndef yytext_ptr
01530 static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner);
01531 #endif
01532
01533 #ifdef YY_NEED_STRLEN
01534 static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner);
01535 #endif
01536
01537 #ifndef YY_NO_INPUT
01538
01539 #ifdef __cplusplus
01540 static int yyinput (yyscan_t yyscanner );
01541 #else
01542 static int input (yyscan_t yyscanner );
01543 #endif
01544
01545 #endif
01546
01547
01548 #ifndef YY_READ_BUF_SIZE
01549 #define YY_READ_BUF_SIZE 8192
01550 #endif
01551
01552
01553 #ifndef ECHO
01554
01555
01556
01557 #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
01558 #endif
01559
01560
01561
01562
01563 #ifndef YY_INPUT
01564 #define YY_INPUT(buf,result,max_size) \
01565 errno=0; \
01566 while ( (result = read( fileno(yyin), (char *) buf, max_size )) < 0 ) \
01567 { \
01568 if( errno != EINTR) \
01569 { \
01570 YY_FATAL_ERROR( "input in flex scanner failed" ); \
01571 break; \
01572 } \
01573 errno=0; \
01574 clearerr(yyin); \
01575 }\
01576 \
01577
01578 #endif
01579
01580
01581
01582
01583
01584 #ifndef yyterminate
01585 #define yyterminate() return YY_NULL
01586 #endif
01587
01588
01589 #ifndef YY_START_STACK_INCR
01590 #define YY_START_STACK_INCR 25
01591 #endif
01592
01593
01594 #ifndef YY_FATAL_ERROR
01595 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
01596 #endif
01597
01598
01599
01600
01601
01602
01603 #ifndef YY_DECL
01604 #define YY_DECL_IS_OURS 1
01605
01606 extern int ast_yylex \
01607 (YYSTYPE * yylval_param,YYLTYPE * yylloc_param ,yyscan_t yyscanner);
01608
01609 #define YY_DECL int ast_yylex \
01610 (YYSTYPE * yylval_param, YYLTYPE * yylloc_param , yyscan_t yyscanner)
01611 #endif
01612
01613
01614
01615
01616 #ifndef YY_USER_ACTION
01617 #define YY_USER_ACTION
01618 #endif
01619
01620
01621 #ifndef YY_BREAK
01622 #define YY_BREAK break;
01623 #endif
01624
01625 #define YY_RULE_SETUP \
01626 YY_USER_ACTION
01627
01628
01629
01630
01631 YY_DECL
01632 {
01633 register yy_state_type yy_current_state;
01634 register char *yy_cp, *yy_bp;
01635 register int yy_act;
01636 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
01637
01638 #line 104 "ast_expr2.fl"
01639
01640
01641 #line 1641 "ast_expr2f.c"
01642
01643 yylval = yylval_param;
01644
01645 yylloc = yylloc_param;
01646
01647 if ( yyg->yy_init )
01648 {
01649 yyg->yy_init = 0;
01650
01651 #ifdef YY_USER_INIT
01652 YY_USER_INIT;
01653 #endif
01654
01655 if ( ! yyg->yy_start )
01656 yyg->yy_start = 1;
01657
01658 if ( ! yyin )
01659 yyin = stdin;
01660
01661 if ( ! yyout )
01662 yyout = stdout;
01663
01664 if ( ! YY_CURRENT_BUFFER ) {
01665 ast_yyensure_buffer_stack (yyscanner);
01666 YY_CURRENT_BUFFER_LVALUE =
01667 ast_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
01668 }
01669
01670 ast_yy_load_buffer_state(yyscanner );
01671 }
01672
01673 while ( 1 )
01674 {
01675 yyg->yy_more_len = 0;
01676 if ( yyg->yy_more_flag )
01677 {
01678 yyg->yy_more_len = yyg->yy_c_buf_p - yyg->yytext_ptr;
01679 yyg->yy_more_flag = 0;
01680 }
01681 yy_cp = yyg->yy_c_buf_p;
01682
01683
01684 *yy_cp = yyg->yy_hold_char;
01685
01686
01687
01688
01689 yy_bp = yy_cp;
01690
01691 yy_current_state = yyg->yy_start;
01692 yy_match:
01693 while ( (yy_current_state = yy_nxt[yy_current_state][ YY_SC_TO_UI(*yy_cp) ]) > 0 )
01694 {
01695 if ( yy_accept[yy_current_state] )
01696 {
01697 yyg->yy_last_accepting_state = yy_current_state;
01698 yyg->yy_last_accepting_cpos = yy_cp;
01699 }
01700
01701 ++yy_cp;
01702 }
01703
01704 yy_current_state = -yy_current_state;
01705
01706 yy_find_action:
01707 yy_act = yy_accept[yy_current_state];
01708
01709 YY_DO_BEFORE_ACTION;
01710
01711 do_action:
01712
01713 switch ( yy_act )
01714 {
01715 case 0:
01716
01717 *yy_cp = yyg->yy_hold_char;
01718 yy_cp = yyg->yy_last_accepting_cpos + 1;
01719 yy_current_state = yyg->yy_last_accepting_state;
01720 goto yy_find_action;
01721
01722 case 1:
01723 YY_RULE_SETUP
01724 #line 106 "ast_expr2.fl"
01725 { SET_COLUMNS; SET_STRING; return TOK_OR;}
01726 YY_BREAK
01727 case 2:
01728 YY_RULE_SETUP
01729 #line 107 "ast_expr2.fl"
01730 { SET_COLUMNS; SET_STRING; return TOK_AND;}
01731 YY_BREAK
01732 case 3:
01733 YY_RULE_SETUP
01734 #line 108 "ast_expr2.fl"
01735 { SET_COLUMNS; SET_STRING; return TOK_EQ;}
01736 YY_BREAK
01737 case 4:
01738 YY_RULE_SETUP
01739 #line 109 "ast_expr2.fl"
01740 { SET_COLUMNS; SET_STRING; return TOK_OR;}
01741 YY_BREAK
01742 case 5:
01743 YY_RULE_SETUP
01744 #line 110 "ast_expr2.fl"
01745 { SET_COLUMNS; SET_STRING; return TOK_AND;}
01746 YY_BREAK
01747 case 6:
01748 YY_RULE_SETUP
01749 #line 111 "ast_expr2.fl"
01750 { SET_COLUMNS; SET_STRING; return TOK_EQ;}
01751 YY_BREAK
01752 case 7:
01753 YY_RULE_SETUP
01754 #line 112 "ast_expr2.fl"
01755 { SET_COLUMNS; SET_STRING; return TOK_EQTILDE;}
01756 YY_BREAK
01757 case 8:
01758 YY_RULE_SETUP
01759 #line 113 "ast_expr2.fl"
01760 { SET_COLUMNS; SET_STRING; return TOK_GT;}
01761 YY_BREAK
01762 case 9:
01763 YY_RULE_SETUP
01764 #line 114 "ast_expr2.fl"
01765 { SET_COLUMNS; SET_STRING; return TOK_LT;}
01766 YY_BREAK
01767 case 10:
01768 YY_RULE_SETUP
01769 #line 115 "ast_expr2.fl"
01770 { SET_COLUMNS; SET_STRING; return TOK_GE;}
01771 YY_BREAK
01772 case 11:
01773 YY_RULE_SETUP
01774 #line 116 "ast_expr2.fl"
01775 { SET_COLUMNS; SET_STRING; return TOK_LE;}
01776 YY_BREAK
01777 case 12:
01778 YY_RULE_SETUP
01779 #line 117 "ast_expr2.fl"
01780 { SET_COLUMNS; SET_STRING; return TOK_NE;}
01781 YY_BREAK
01782 case 13:
01783 YY_RULE_SETUP
01784 #line 118 "ast_expr2.fl"
01785 { SET_COLUMNS; SET_STRING; return TOK_PLUS;}
01786 YY_BREAK
01787 case 14:
01788 YY_RULE_SETUP
01789 #line 119 "ast_expr2.fl"
01790 { SET_COLUMNS; SET_STRING; return TOK_MINUS;}
01791 YY_BREAK
01792 case 15:
01793 YY_RULE_SETUP
01794 #line 120 "ast_expr2.fl"
01795 { SET_COLUMNS; SET_STRING; return TOK_MULT;}
01796 YY_BREAK
01797 case 16:
01798 YY_RULE_SETUP
01799 #line 121 "ast_expr2.fl"
01800 { SET_COLUMNS; SET_STRING; return TOK_DIV;}
01801 YY_BREAK
01802 case 17:
01803 YY_RULE_SETUP
01804 #line 122 "ast_expr2.fl"
01805 { SET_COLUMNS; SET_STRING; return TOK_MOD;}
01806 YY_BREAK
01807 case 18:
01808 YY_RULE_SETUP
01809 #line 123 "ast_expr2.fl"
01810 { SET_COLUMNS; SET_STRING; return TOK_COND;}
01811 YY_BREAK
01812 case 19:
01813 YY_RULE_SETUP
01814 #line 124 "ast_expr2.fl"
01815 { SET_COLUMNS; SET_STRING; return TOK_COMPL;}
01816 YY_BREAK
01817 case 20:
01818 YY_RULE_SETUP
01819 #line 125 "ast_expr2.fl"
01820 { SET_COLUMNS; SET_STRING; return TOK_COLON;}
01821 YY_BREAK
01822 case 21:
01823 YY_RULE_SETUP
01824 #line 126 "ast_expr2.fl"
01825 { SET_COLUMNS; SET_STRING; return TOK_COLONCOLON;}
01826 YY_BREAK
01827 case 22:
01828 YY_RULE_SETUP
01829 #line 127 "ast_expr2.fl"
01830 { SET_COLUMNS; SET_STRING; return TOK_LP;}
01831 YY_BREAK
01832 case 23:
01833 YY_RULE_SETUP
01834 #line 128 "ast_expr2.fl"
01835 { SET_COLUMNS; SET_STRING; return TOK_RP;}
01836 YY_BREAK
01837 case 24:
01838 YY_RULE_SETUP
01839 #line 129 "ast_expr2.fl"
01840 {
01841
01842
01843
01844
01845 curlycount = 0;
01846 BEGIN(var);
01847 yymore();
01848 }
01849 YY_BREAK
01850 case 25:
01851 YY_RULE_SETUP
01852 #line 139 "ast_expr2.fl"
01853 {}
01854 YY_BREAK
01855 case 26:
01856
01857 YY_RULE_SETUP
01858 #line 140 "ast_expr2.fl"
01859 {SET_COLUMNS; SET_STRING; return TOKEN;}
01860 YY_BREAK
01861 case 27:
01862
01863 YY_RULE_SETUP
01864 #line 142 "ast_expr2.fl"
01865 {}
01866 YY_BREAK
01867 case 28:
01868 YY_RULE_SETUP
01869 #line 143 "ast_expr2.fl"
01870 {
01871 SET_COLUMNS;
01872
01873
01874
01875 SET_NUMERIC_STRING;
01876 return TOKEN;
01877 }
01878 YY_BREAK
01879 case 29:
01880 YY_RULE_SETUP
01881 #line 152 "ast_expr2.fl"
01882 {
01883 SET_COLUMNS;
01884 SET_STRING;
01885 return TOKEN;
01886 }
01887 YY_BREAK
01888 case 30:
01889
01890 YY_RULE_SETUP
01891 #line 159 "ast_expr2.fl"
01892 {
01893 curlycount--;
01894 if (curlycount < 0) {
01895 BEGIN(trail);
01896 yymore();
01897 } else {
01898 yymore();
01899 }
01900 }
01901 YY_BREAK
01902 case 31:
01903
01904 YY_RULE_SETUP
01905 #line 169 "ast_expr2.fl"
01906 {
01907 curlycount++;
01908 yymore();
01909 }
01910 YY_BREAK
01911 case 32:
01912 YY_RULE_SETUP
01913 #line 175 "ast_expr2.fl"
01914 {
01915 BEGIN(0);
01916 SET_COLUMNS;
01917 SET_STRING;
01918 return TOKEN;
01919 }
01920 YY_BREAK
01921 case 33:
01922
01923 YY_RULE_SETUP
01924 #line 182 "ast_expr2.fl"
01925 {
01926 char c = yytext[yyleng-1];
01927 BEGIN(0);
01928 unput(c);
01929 SET_COLUMNS;
01930 SET_STRING;
01931 return TOKEN;
01932 }
01933 YY_BREAK
01934 case 34:
01935 YY_RULE_SETUP
01936 #line 191 "ast_expr2.fl"
01937 {
01938 curlycount = 0;
01939 BEGIN(var);
01940 yymore();
01941 }
01942 YY_BREAK
01943 case YY_STATE_EOF(trail):
01944 #line 197 "ast_expr2.fl"
01945 {
01946 BEGIN(0);
01947 SET_COLUMNS;
01948 SET_STRING;
01949 return TOKEN;
01950
01951 }
01952 YY_BREAK
01953 case 35:
01954 YY_RULE_SETUP
01955 #line 205 "ast_expr2.fl"
01956 ECHO;
01957 YY_BREAK
01958 #line 1958 "ast_expr2f.c"
01959 case YY_STATE_EOF(INITIAL):
01960 case YY_STATE_EOF(var):
01961 yyterminate();
01962
01963 case YY_END_OF_BUFFER:
01964 {
01965
01966 int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1;
01967
01968
01969 *yy_cp = yyg->yy_hold_char;
01970 YY_RESTORE_YY_MORE_OFFSET
01971
01972 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
01973 {
01974
01975
01976
01977
01978
01979
01980
01981
01982
01983 yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
01984 YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
01985 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
01986 }
01987
01988
01989
01990
01991
01992
01993
01994
01995 if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
01996 {
01997 yy_state_type yy_next_state;
01998
01999 yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text;
02000
02001 yy_current_state = yy_get_previous_state( yyscanner );
02002
02003
02004
02005
02006
02007
02008
02009
02010
02011
02012 yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner);
02013
02014 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
02015
02016 if ( yy_next_state )
02017 {
02018
02019 yy_cp = ++yyg->yy_c_buf_p;
02020 yy_current_state = yy_next_state;
02021 goto yy_match;
02022 }
02023
02024 else
02025 {
02026 yy_cp = yyg->yy_c_buf_p;
02027 goto yy_find_action;
02028 }
02029 }
02030
02031 else switch ( yy_get_next_buffer( yyscanner ) )
02032 {
02033 case EOB_ACT_END_OF_FILE:
02034 {
02035 yyg->yy_did_buffer_switch_on_eof = 0;
02036
02037 if ( ast_yywrap(yyscanner ) )
02038 {
02039
02040
02041
02042
02043
02044
02045
02046
02047
02048 yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ;
02049
02050 yy_act = YY_STATE_EOF(YY_START);
02051 goto do_action;
02052 }
02053
02054 else
02055 {
02056 if ( ! yyg->yy_did_buffer_switch_on_eof )
02057 YY_NEW_FILE;
02058 }
02059 break;
02060 }
02061
02062 case EOB_ACT_CONTINUE_SCAN:
02063 yyg->yy_c_buf_p =
02064 yyg->yytext_ptr + yy_amount_of_matched_text;
02065
02066 yy_current_state = yy_get_previous_state( yyscanner );
02067
02068 yy_cp = yyg->yy_c_buf_p;
02069 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
02070 goto yy_match;
02071
02072 case EOB_ACT_LAST_MATCH:
02073 yyg->yy_c_buf_p =
02074 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars];
02075
02076 yy_current_state = yy_get_previous_state( yyscanner );
02077
02078 yy_cp = yyg->yy_c_buf_p;
02079 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
02080 goto yy_find_action;
02081 }
02082 break;
02083 }
02084
02085 default:
02086 YY_FATAL_ERROR(
02087 "fatal flex scanner internal error--no action found" );
02088 }
02089 }
02090 }
02091
02092
02093
02094
02095
02096
02097
02098
02099 static int yy_get_next_buffer (yyscan_t yyscanner)
02100 {
02101 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02102 register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
02103 register char *source = yyg->yytext_ptr;
02104 register int number_to_move, i;
02105 int ret_val;
02106
02107 if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
02108 YY_FATAL_ERROR(
02109 "fatal flex scanner internal error--end of buffer missed" );
02110
02111 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
02112 {
02113 if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 )
02114 {
02115
02116
02117
02118 return EOB_ACT_END_OF_FILE;
02119 }
02120
02121 else
02122 {
02123
02124
02125
02126 return EOB_ACT_LAST_MATCH;
02127 }
02128 }
02129
02130
02131
02132
02133 number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1;
02134
02135 for ( i = 0; i < number_to_move; ++i )
02136 *(dest++) = *(source++);
02137
02138 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
02139
02140
02141
02142 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
02143
02144 else
02145 {
02146 int num_to_read =
02147 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
02148
02149 while ( num_to_read <= 0 )
02150 {
02151
02152
02153 YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
02154
02155 int yy_c_buf_p_offset =
02156 (int) (yyg->yy_c_buf_p - b->yy_ch_buf);
02157
02158 if ( b->yy_is_our_buffer )
02159 {
02160 int new_size = b->yy_buf_size * 2;
02161
02162 if ( new_size <= 0 )
02163 b->yy_buf_size += b->yy_buf_size / 8;
02164 else
02165 b->yy_buf_size *= 2;
02166
02167 b->yy_ch_buf = (char *)
02168
02169 ast_yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ,yyscanner );
02170 }
02171 else
02172
02173 b->yy_ch_buf = 0;
02174
02175 if ( ! b->yy_ch_buf )
02176 YY_FATAL_ERROR(
02177 "fatal error - scanner input buffer overflow" );
02178
02179 yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
02180
02181 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
02182 number_to_move - 1;
02183
02184 }
02185
02186 if ( num_to_read > YY_READ_BUF_SIZE )
02187 num_to_read = YY_READ_BUF_SIZE;
02188
02189
02190 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
02191 yyg->yy_n_chars, num_to_read );
02192
02193 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
02194 }
02195
02196 if ( yyg->yy_n_chars == 0 )
02197 {
02198 if ( number_to_move == YY_MORE_ADJ )
02199 {
02200 ret_val = EOB_ACT_END_OF_FILE;
02201 ast_yyrestart(yyin ,yyscanner);
02202 }
02203
02204 else
02205 {
02206 ret_val = EOB_ACT_LAST_MATCH;
02207 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
02208 YY_BUFFER_EOF_PENDING;
02209 }
02210 }
02211
02212 else
02213 ret_val = EOB_ACT_CONTINUE_SCAN;
02214
02215 yyg->yy_n_chars += number_to_move;
02216 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR;
02217 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
02218
02219 yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
02220
02221 return ret_val;
02222 }
02223
02224
02225
02226 static yy_state_type yy_get_previous_state (yyscan_t yyscanner)
02227 {
02228 register yy_state_type yy_current_state;
02229 register char *yy_cp;
02230 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02231
02232 yy_current_state = yyg->yy_start;
02233
02234 for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
02235 {
02236 if ( *yy_cp )
02237 {
02238 yy_current_state = yy_nxt[yy_current_state][YY_SC_TO_UI(*yy_cp)];
02239 }
02240 else
02241 yy_current_state = yy_NUL_trans[yy_current_state];
02242 if ( yy_accept[yy_current_state] )
02243 {
02244 yyg->yy_last_accepting_state = yy_current_state;
02245 yyg->yy_last_accepting_cpos = yy_cp;
02246 }
02247 }
02248
02249 return yy_current_state;
02250 }
02251
02252
02253
02254
02255
02256
02257 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state , yyscan_t yyscanner)
02258 {
02259 register int yy_is_jam;
02260 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02261 register char *yy_cp = yyg->yy_c_buf_p;
02262
02263 yy_current_state = yy_NUL_trans[yy_current_state];
02264 yy_is_jam = (yy_current_state == 0);
02265
02266 if ( ! yy_is_jam )
02267 {
02268 if ( yy_accept[yy_current_state] )
02269 {
02270 yyg->yy_last_accepting_state = yy_current_state;
02271 yyg->yy_last_accepting_cpos = yy_cp;
02272 }
02273 }
02274
02275 return yy_is_jam ? 0 : yy_current_state;
02276 }
02277
02278 static void yyunput (int c, register char * yy_bp , yyscan_t yyscanner)
02279 {
02280 register char *yy_cp;
02281 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02282
02283 yy_cp = yyg->yy_c_buf_p;
02284
02285
02286 *yy_cp = yyg->yy_hold_char;
02287
02288 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
02289 {
02290
02291 register int number_to_move = yyg->yy_n_chars + 2;
02292 register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
02293 YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
02294 register char *source =
02295 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
02296
02297 while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
02298 *--dest = *--source;
02299
02300 yy_cp += (int) (dest - source);
02301 yy_bp += (int) (dest - source);
02302 YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
02303 yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
02304
02305 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
02306 YY_FATAL_ERROR( "flex scanner push-back overflow" );
02307 }
02308
02309 *--yy_cp = (char) c;
02310
02311 yyg->yytext_ptr = yy_bp;
02312 yyg->yy_hold_char = *yy_cp;
02313 yyg->yy_c_buf_p = yy_cp;
02314 }
02315
02316 #ifndef YY_NO_INPUT
02317 #ifdef __cplusplus
02318 static int yyinput (yyscan_t yyscanner)
02319 #else
02320 static int input (yyscan_t yyscanner)
02321 #endif
02322
02323 {
02324 int c;
02325 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02326
02327 *yyg->yy_c_buf_p = yyg->yy_hold_char;
02328
02329 if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
02330 {
02331
02332
02333
02334
02335 if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
02336
02337 *yyg->yy_c_buf_p = '\0';
02338
02339 else
02340 {
02341 int offset = yyg->yy_c_buf_p - yyg->yytext_ptr;
02342 ++yyg->yy_c_buf_p;
02343
02344 switch ( yy_get_next_buffer( yyscanner ) )
02345 {
02346 case EOB_ACT_LAST_MATCH:
02347
02348
02349
02350
02351
02352
02353
02354
02355
02356
02357
02358 ast_yyrestart(yyin ,yyscanner);
02359
02360
02361
02362 case EOB_ACT_END_OF_FILE:
02363 {
02364 if ( ast_yywrap(yyscanner ) )
02365 return EOF;
02366
02367 if ( ! yyg->yy_did_buffer_switch_on_eof )
02368 YY_NEW_FILE;
02369 #ifdef __cplusplus
02370 return yyinput(yyscanner);
02371 #else
02372 return input(yyscanner);
02373 #endif
02374 }
02375
02376 case EOB_ACT_CONTINUE_SCAN:
02377 yyg->yy_c_buf_p = yyg->yytext_ptr + offset;
02378 break;
02379 }
02380 }
02381 }
02382
02383 c = *(unsigned char *) yyg->yy_c_buf_p;
02384 *yyg->yy_c_buf_p = '\0';
02385 yyg->yy_hold_char = *++yyg->yy_c_buf_p;
02386
02387 return c;
02388 }
02389 #endif
02390
02391
02392
02393
02394
02395
02396
02397 void ast_yyrestart (FILE * input_file , yyscan_t yyscanner)
02398 {
02399 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02400
02401 if ( ! YY_CURRENT_BUFFER ){
02402 ast_yyensure_buffer_stack (yyscanner);
02403 YY_CURRENT_BUFFER_LVALUE =
02404 ast_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
02405 }
02406
02407 ast_yy_init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner);
02408 ast_yy_load_buffer_state(yyscanner );
02409 }
02410
02411
02412
02413
02414
02415
02416 void ast_yy_switch_to_buffer (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
02417 {
02418 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02419
02420
02421
02422
02423
02424
02425 ast_yyensure_buffer_stack (yyscanner);
02426 if ( YY_CURRENT_BUFFER == new_buffer )
02427 return;
02428
02429 if ( YY_CURRENT_BUFFER )
02430 {
02431
02432 *yyg->yy_c_buf_p = yyg->yy_hold_char;
02433 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
02434 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
02435 }
02436
02437 YY_CURRENT_BUFFER_LVALUE = new_buffer;
02438 ast_yy_load_buffer_state(yyscanner );
02439
02440
02441
02442
02443
02444
02445 yyg->yy_did_buffer_switch_on_eof = 1;
02446 }
02447
02448 static void ast_yy_load_buffer_state (yyscan_t yyscanner)
02449 {
02450 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02451 yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
02452 yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
02453 yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
02454 yyg->yy_hold_char = *yyg->yy_c_buf_p;
02455 }
02456
02457
02458
02459
02460
02461
02462
02463
02464 YY_BUFFER_STATE ast_yy_create_buffer (FILE * file, int size , yyscan_t yyscanner)
02465 {
02466 YY_BUFFER_STATE b;
02467
02468 b = (YY_BUFFER_STATE) ast_yyalloc(sizeof( struct yy_buffer_state ) ,yyscanner );
02469 if ( ! b )
02470 YY_FATAL_ERROR( "out of dynamic memory in ast_yy_create_buffer()" );
02471
02472 b->yy_buf_size = size;
02473
02474
02475
02476
02477 b->yy_ch_buf = (char *) ast_yyalloc(b->yy_buf_size + 2 ,yyscanner );
02478 if ( ! b->yy_ch_buf )
02479 YY_FATAL_ERROR( "out of dynamic memory in ast_yy_create_buffer()" );
02480
02481 b->yy_is_our_buffer = 1;
02482
02483 ast_yy_init_buffer(b,file ,yyscanner);
02484
02485 return b;
02486 }
02487
02488
02489
02490
02491
02492
02493 void ast_yy_delete_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner)
02494 {
02495 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02496
02497 if ( ! b )
02498 return;
02499
02500 if ( b == YY_CURRENT_BUFFER )
02501 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
02502
02503 if ( b->yy_is_our_buffer )
02504 ast_yyfree((void *) b->yy_ch_buf ,yyscanner );
02505
02506 ast_yyfree((void *) b ,yyscanner );
02507 }
02508
02509 #ifndef __cplusplus
02510 extern int isatty (int );
02511 #endif
02512
02513
02514
02515
02516
02517 static void ast_yy_init_buffer (YY_BUFFER_STATE b, FILE * file , yyscan_t yyscanner)
02518
02519 {
02520 int oerrno = errno;
02521 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02522
02523 ast_yy_flush_buffer(b ,yyscanner);
02524
02525 b->yy_input_file = file;
02526 b->yy_fill_buffer = 1;
02527
02528
02529
02530
02531
02532 if (b != YY_CURRENT_BUFFER){
02533 b->yy_bs_lineno = 1;
02534 b->yy_bs_column = 0;
02535 }
02536
02537 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
02538
02539 errno = oerrno;
02540 }
02541
02542
02543
02544
02545
02546
02547 void ast_yy_flush_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner)
02548 {
02549 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02550 if ( ! b )
02551 return;
02552
02553 b->yy_n_chars = 0;
02554
02555
02556
02557
02558
02559 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
02560 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
02561
02562 b->yy_buf_pos = &b->yy_ch_buf[0];
02563
02564 b->yy_at_bol = 1;
02565 b->yy_buffer_status = YY_BUFFER_NEW;
02566
02567 if ( b == YY_CURRENT_BUFFER )
02568 ast_yy_load_buffer_state(yyscanner );
02569 }
02570
02571
02572
02573
02574
02575
02576
02577 void ast_yypush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
02578 {
02579 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02580 if (new_buffer == NULL)
02581 return;
02582
02583 ast_yyensure_buffer_stack(yyscanner);
02584
02585
02586 if ( YY_CURRENT_BUFFER )
02587 {
02588
02589 *yyg->yy_c_buf_p = yyg->yy_hold_char;
02590 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
02591 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
02592 }
02593
02594
02595 if (YY_CURRENT_BUFFER)
02596 yyg->yy_buffer_stack_top++;
02597 YY_CURRENT_BUFFER_LVALUE = new_buffer;
02598
02599
02600 ast_yy_load_buffer_state(yyscanner );
02601 yyg->yy_did_buffer_switch_on_eof = 1;
02602 }
02603
02604
02605
02606
02607
02608
02609 void ast_yypop_buffer_state (yyscan_t yyscanner)
02610 {
02611 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02612 if (!YY_CURRENT_BUFFER)
02613 return;
02614
02615 ast_yy_delete_buffer(YY_CURRENT_BUFFER ,yyscanner);
02616 YY_CURRENT_BUFFER_LVALUE = NULL;
02617 if (yyg->yy_buffer_stack_top > 0)
02618 --yyg->yy_buffer_stack_top;
02619
02620 if (YY_CURRENT_BUFFER) {
02621 ast_yy_load_buffer_state(yyscanner );
02622 yyg->yy_did_buffer_switch_on_eof = 1;
02623 }
02624 }
02625
02626
02627
02628
02629 static void ast_yyensure_buffer_stack (yyscan_t yyscanner)
02630 {
02631 int num_to_alloc;
02632 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02633
02634 if (!yyg->yy_buffer_stack) {
02635
02636
02637
02638
02639
02640 num_to_alloc = 1;
02641 yyg->yy_buffer_stack = (struct yy_buffer_state**)ast_yyalloc
02642 (num_to_alloc * sizeof(struct yy_buffer_state*)
02643 , yyscanner);
02644
02645 memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*));
02646
02647 yyg->yy_buffer_stack_max = num_to_alloc;
02648 yyg->yy_buffer_stack_top = 0;
02649 return;
02650 }
02651
02652 if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){
02653
02654
02655 int grow_size = 8 ;
02656
02657 num_to_alloc = yyg->yy_buffer_stack_max + grow_size;
02658 yyg->yy_buffer_stack = (struct yy_buffer_state**)ast_yyrealloc
02659 (yyg->yy_buffer_stack,
02660 num_to_alloc * sizeof(struct yy_buffer_state*)
02661 , yyscanner);
02662
02663
02664 memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*));
02665 yyg->yy_buffer_stack_max = num_to_alloc;
02666 }
02667 }
02668
02669
02670
02671
02672
02673
02674
02675
02676 YY_BUFFER_STATE ast_yy_scan_buffer (char * base, yy_size_t size , yyscan_t yyscanner)
02677 {
02678 YY_BUFFER_STATE b;
02679
02680 if ( size < 2 ||
02681 base[size-2] != YY_END_OF_BUFFER_CHAR ||
02682 base[size-1] != YY_END_OF_BUFFER_CHAR )
02683
02684 return 0;
02685
02686 b = (YY_BUFFER_STATE) ast_yyalloc(sizeof( struct yy_buffer_state ) ,yyscanner );
02687 if ( ! b )
02688 YY_FATAL_ERROR( "out of dynamic memory in ast_yy_scan_buffer()" );
02689
02690 b->yy_buf_size = size - 2;
02691 b->yy_buf_pos = b->yy_ch_buf = base;
02692 b->yy_is_our_buffer = 0;
02693 b->yy_input_file = 0;
02694 b->yy_n_chars = b->yy_buf_size;
02695 b->yy_is_interactive = 0;
02696 b->yy_at_bol = 1;
02697 b->yy_fill_buffer = 0;
02698 b->yy_buffer_status = YY_BUFFER_NEW;
02699
02700 ast_yy_switch_to_buffer(b ,yyscanner );
02701
02702 return b;
02703 }
02704
02705
02706
02707
02708
02709
02710
02711
02712
02713
02714 YY_BUFFER_STATE ast_yy_scan_string (yyconst char * yy_str , yyscan_t yyscanner)
02715 {
02716
02717 return ast_yy_scan_bytes(yy_str,strlen(yy_str) ,yyscanner);
02718 }
02719
02720
02721
02722
02723
02724
02725
02726
02727
02728 YY_BUFFER_STATE ast_yy_scan_bytes (yyconst char * bytes, int 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 = 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 < len; ++i )
02742 buf[i] = bytes[i];
02743
02744 buf[len] = buf[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
02791 YY_EXTRA_TYPE ast_yyget_extra (yyscan_t yyscanner)
02792 {
02793 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02794 return yyextra;
02795 }
02796
02797
02798
02799
02800
02801 int ast_yyget_lineno (yyscan_t yyscanner)
02802 {
02803 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02804
02805 if (! YY_CURRENT_BUFFER)
02806 return 0;
02807
02808 return yylineno;
02809 }
02810
02811
02812
02813
02814
02815 int ast_yyget_column (yyscan_t yyscanner)
02816 {
02817 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02818
02819 if (! YY_CURRENT_BUFFER)
02820 return 0;
02821
02822 return yycolumn;
02823 }
02824
02825
02826
02827
02828
02829 FILE *ast_yyget_in (yyscan_t yyscanner)
02830 {
02831 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02832 return yyin;
02833 }
02834
02835
02836
02837
02838
02839 FILE *ast_yyget_out (yyscan_t yyscanner)
02840 {
02841 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02842 return yyout;
02843 }
02844
02845
02846
02847
02848
02849 int ast_yyget_leng (yyscan_t yyscanner)
02850 {
02851 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02852 return yyleng;
02853 }
02854
02855
02856
02857
02858
02859 char *ast_yyget_text (yyscan_t yyscanner)
02860 {
02861 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02862 return yytext;
02863 }
02864
02865
02866
02867
02868
02869
02870 void ast_yyset_extra (YY_EXTRA_TYPE user_defined , yyscan_t yyscanner)
02871 {
02872 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02873 yyextra = user_defined ;
02874 }
02875
02876
02877
02878
02879
02880
02881 void ast_yyset_lineno (int line_number , yyscan_t yyscanner)
02882 {
02883 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02884
02885
02886 if (! YY_CURRENT_BUFFER )
02887 yy_fatal_error( "ast_yyset_lineno called with no buffer" , yyscanner);
02888
02889 yylineno = line_number;
02890 }
02891
02892
02893
02894
02895
02896
02897 void ast_yyset_column (int column_no , yyscan_t yyscanner)
02898 {
02899 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02900
02901
02902 if (! YY_CURRENT_BUFFER )
02903 yy_fatal_error( "ast_yyset_column called with no buffer" , yyscanner);
02904
02905 yycolumn = column_no;
02906 }
02907
02908
02909
02910
02911
02912
02913
02914 void ast_yyset_in (FILE * in_str , yyscan_t yyscanner)
02915 {
02916 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02917 yyin = in_str ;
02918 }
02919
02920 void ast_yyset_out (FILE * out_str , yyscan_t yyscanner)
02921 {
02922 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02923 yyout = out_str ;
02924 }
02925
02926 int ast_yyget_debug (yyscan_t yyscanner)
02927 {
02928 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02929 return yy_flex_debug;
02930 }
02931
02932 void ast_yyset_debug (int bdebug , yyscan_t yyscanner)
02933 {
02934 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02935 yy_flex_debug = bdebug ;
02936 }
02937
02938
02939
02940 YYSTYPE * ast_yyget_lval (yyscan_t yyscanner)
02941 {
02942 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02943 return yylval;
02944 }
02945
02946 void ast_yyset_lval (YYSTYPE * yylval_param , yyscan_t yyscanner)
02947 {
02948 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02949 yylval = yylval_param;
02950 }
02951
02952 YYLTYPE *ast_yyget_lloc (yyscan_t yyscanner)
02953 {
02954 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02955 return yylloc;
02956 }
02957
02958 void ast_yyset_lloc (YYLTYPE * yylloc_param , yyscan_t yyscanner)
02959 {
02960 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02961 yylloc = yylloc_param;
02962 }
02963
02964 static int yy_init_globals (yyscan_t yyscanner)
02965 {
02966 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02967
02968
02969
02970 yyg->yy_buffer_stack = 0;
02971 yyg->yy_buffer_stack_top = 0;
02972 yyg->yy_buffer_stack_max = 0;
02973 yyg->yy_c_buf_p = (char *) 0;
02974 yyg->yy_init = 1;
02975 yyg->yy_start = 0;
02976 yyg->yy_start_stack_ptr = 0;
02977 yyg->yy_start_stack_depth = 0;
02978 yyg->yy_start_stack = (int *) 0;
02979
02980
02981 #ifdef YY_STDINIT
02982 yyin = stdin;
02983 yyout = stdout;
02984 #else
02985 yyin = (FILE *) 0;
02986 yyout = (FILE *) 0;
02987 #endif
02988
02989
02990
02991
02992 return 0;
02993 }
02994
02995
02996
02997
02998
02999
03000
03001
03002 int ast_yylex_init(yyscan_t* ptr_yy_globals)
03003
03004 {
03005 if (ptr_yy_globals == NULL){
03006 errno = EINVAL;
03007 return 1;
03008 }
03009
03010 *ptr_yy_globals = (yyscan_t) ast_yyalloc ( sizeof( struct yyguts_t ), NULL );
03011
03012 if (*ptr_yy_globals == NULL){
03013 errno = ENOMEM;
03014 return 1;
03015 }
03016
03017 memset(*ptr_yy_globals,0,sizeof(struct yyguts_t));
03018
03019 return yy_init_globals ( *ptr_yy_globals );
03020 }
03021
03022
03023 int ast_yylex_destroy (yyscan_t yyscanner)
03024 {
03025 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03026
03027
03028 while(YY_CURRENT_BUFFER){
03029 ast_yy_delete_buffer(YY_CURRENT_BUFFER ,yyscanner );
03030 YY_CURRENT_BUFFER_LVALUE = NULL;
03031 ast_yypop_buffer_state(yyscanner);
03032 }
03033
03034
03035 ast_yyfree(yyg->yy_buffer_stack ,yyscanner);
03036 yyg->yy_buffer_stack = NULL;
03037
03038
03039 ast_yyfree(yyg->yy_start_stack ,yyscanner );
03040 yyg->yy_start_stack = NULL;
03041
03042
03043 ast_yyfree ( yyscanner , yyscanner );
03044 return 0;
03045 }
03046
03047
03048
03049
03050
03051 #ifndef yytext_ptr
03052 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner)
03053 {
03054 register int i;
03055 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03056 for ( i = 0; i < n; ++i )
03057 s1[i] = s2[i];
03058 }
03059 #endif
03060
03061 #ifdef YY_NEED_STRLEN
03062 static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner)
03063 {
03064 register int n;
03065 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03066 for ( n = 0; s[n]; ++n )
03067 ;
03068
03069 return n;
03070 }
03071 #endif
03072
03073 void *ast_yyalloc (yy_size_t size , yyscan_t yyscanner)
03074 {
03075 return (void *) malloc( size );
03076 }
03077
03078 void *ast_yyrealloc (void * ptr, yy_size_t size , yyscan_t yyscanner)
03079 {
03080
03081
03082
03083
03084
03085
03086
03087 return (void *) realloc( (char *) ptr, size );
03088 }
03089
03090 void ast_yyfree (void * ptr , yyscan_t yyscanner)
03091 {
03092 free( (char *) ptr );
03093 }
03094
03095 #define YYTABLES_NAME "yytables"
03096
03097 #undef YY_NEW_FILE
03098 #undef YY_FLUSH_BUFFER
03099 #undef yy_set_bol
03100 #undef yy_new_buffer
03101 #undef yy_set_interactive
03102 #undef yytext_ptr
03103 #undef YY_DO_BEFORE_ACTION
03104
03105 #ifdef YY_DECL_IS_OURS
03106 #undef YY_DECL_IS_OURS
03107 #undef YY_DECL
03108 #endif
03109 #line 205 "ast_expr2.fl"
03110
03111
03112
03113
03114
03115
03116
03117
03118
03119 int ast_yyparse(void *);
03120 int ast_yyerror(const char *, YYLTYPE *, struct parse_io *);
03121
03122 int ast_expr(char *expr, char *buf, int length)
03123 {
03124 struct parse_io io;
03125 int return_value = 0;
03126
03127 memset(&io, 0, sizeof(io));
03128 io.string = expr;
03129
03130 ast_yylex_init(&io.scanner);
03131
03132 ast_yy_scan_string(expr, io.scanner);
03133
03134 ast_yyparse ((void *) &io);
03135
03136 ast_yylex_destroy(io.scanner);
03137
03138 if (!io.val) {
03139 if (length > 1) {
03140 strcpy(buf, "0");
03141 return_value = 1;
03142 }
03143 } else {
03144 if (io.val->type == AST_EXPR_integer) {
03145 int res_length;
03146
03147 res_length = snprintf(buf, length, "%ld", (long int) io.val->u.i);
03148 return_value = (res_length <= length) ? res_length : length;
03149 } else {
03150 #if defined(STANDALONE) || defined(LOW_MEMORY) || defined(STANDALONE_AEL)
03151 strncpy(buf, io.val->u.s, length - 1);
03152 #else
03153 ast_copy_string(buf, io.val->u.s, length);
03154 #endif
03155 return_value = strlen(buf);
03156 free(io.val->u.s);
03157 }
03158 free(io.val);
03159 }
03160 return return_value;
03161 }
03162
03163
03164 char extra_error_message[4095];
03165 int extra_error_message_supplied = 0;
03166 void ast_expr_register_extra_error_info(char *message);
03167 void ast_expr_clear_extra_error_info(void);
03168
03169 void ast_expr_register_extra_error_info(char *message)
03170 {
03171 extra_error_message_supplied=1;
03172 strcpy(extra_error_message, message);
03173 }
03174
03175 void ast_expr_clear_extra_error_info(void)
03176 {
03177 extra_error_message_supplied=0;
03178 extra_error_message[0] = 0;
03179 }
03180
03181 static char *expr2_token_equivs1[] =
03182 {
03183 "TOKEN",
03184 "TOK_COND",
03185 "TOK_COLONCOLON",
03186 "TOK_OR",
03187 "TOK_AND",
03188 "TOK_EQ",
03189 "TOK_GT",
03190 "TOK_LT",
03191 "TOK_GE",
03192 "TOK_LE",
03193 "TOK_NE",
03194 "TOK_PLUS",
03195 "TOK_MINUS",
03196 "TOK_MULT",
03197 "TOK_DIV",
03198 "TOK_MOD",
03199 "TOK_COMPL",
03200 "TOK_COLON",
03201 "TOK_EQTILDE",
03202 "TOK_RP",
03203 "TOK_LP"
03204 };
03205
03206 static char *expr2_token_equivs2[] =
03207 {
03208 "<token>",
03209 "?",
03210 "::",
03211 "|",
03212 "&",
03213 "=",
03214 ">",
03215 "<",
03216 ">=",
03217 "<=",
03218 "!=",
03219 "+",
03220 "-",
03221 "*",
03222 "/",
03223 "%",
03224 "!",
03225 ":",
03226 "=~",
03227 ")",
03228 "("
03229 };
03230
03231
03232 static char *expr2_token_subst(char *mess)
03233 {
03234
03235 int len=0,i;
03236 char *p;
03237 char *res, *s,*t;
03238 int expr2_token_equivs_entries = sizeof(expr2_token_equivs1)/sizeof(char*);
03239
03240 for (p=mess; *p; p++) {
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 {
03244 len+=strlen(expr2_token_equivs2[i])+2;
03245 p += strlen(expr2_token_equivs1[i])-1;
03246 break;
03247 }
03248 }
03249 len++;
03250 }
03251 res = (char*)malloc(len+1);
03252 res[0] = 0;
03253 s = res;
03254 for (p=mess; *p;) {
03255 int found = 0;
03256 for (i=0; i<expr2_token_equivs_entries; i++) {
03257 if ( strncmp(p,expr2_token_equivs1[i],strlen(expr2_token_equivs1[i])) == 0 ) {
03258 *s++ = '\'';
03259 for (t=expr2_token_equivs2[i]; *t;) {
03260 *s++ = *t++;
03261 }
03262 *s++ = '\'';
03263 p += strlen(expr2_token_equivs1[i]);
03264 found = 1;
03265 break;
03266 }
03267 }
03268 if( !found )
03269 *s++ = *p++;
03270 }
03271 *s++ = 0;
03272 return res;
03273 }
03274
03275 int ast_yyerror (const char *s, yyltype *loc, struct parse_io *parseio )
03276 {
03277 struct yyguts_t * yyg = (struct yyguts_t*)(parseio->scanner);
03278 char spacebuf[8000];
03279 char spacebuf2[8000];
03280 int i=0;
03281 char *s2 = expr2_token_subst((char *)s);
03282 spacebuf[0] = 0;
03283
03284 for(i=0;i< (int)(yytext - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf);i++) spacebuf2[i] = ' ';
03285
03286
03287
03288
03289
03290
03291
03292
03293
03294
03295 spacebuf2[i++]='^';
03296 spacebuf2[i]= 0;
03297
03298 #ifdef STANDALONE3
03299
03300 printf("ast_yyerror(): %s syntax error: %s; Input:\n%s\n%s\n",
03301 (extra_error_message_supplied?extra_error_message:""), s2, parseio->string,spacebuf2);
03302 #else
03303 ast_log(LOG_WARNING,"ast_yyerror(): %s syntax error: %s; Input:\n%s\n%s\n",
03304 (extra_error_message_supplied?extra_error_message:""), s2, parseio->string,spacebuf2);
03305 #endif
03306 #ifndef STANDALONE
03307 ast_log(LOG_WARNING,"If you have questions, please refer to doc/channelvariables.txt in the asterisk source.\n");
03308 #endif
03309 free(s2);
03310 return(0);
03311 }
03312