00001 #line 2 "dbcompare_sortorder_scanner.cc"
00002
00003 #line 4 "dbcompare_sortorder_scanner.cc"
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 #define yyFlexLexer CoconutDBCompareSortOrderFlexLexer
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifndef FLEXINT_H
00031 #define FLEXINT_H
00032
00033
00034
00035 #if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L
00036 #include <inttypes.h>
00037 typedef int8_t flex_int8_t;
00038 typedef uint8_t flex_uint8_t;
00039 typedef int16_t flex_int16_t;
00040 typedef uint16_t flex_uint16_t;
00041 typedef int32_t flex_int32_t;
00042 typedef uint32_t flex_uint32_t;
00043 #else
00044 typedef signed char flex_int8_t;
00045 typedef short int flex_int16_t;
00046 typedef int flex_int32_t;
00047 typedef unsigned char flex_uint8_t;
00048 typedef unsigned short int flex_uint16_t;
00049 typedef unsigned int flex_uint32_t;
00050 #endif
00051
00052
00053 #ifndef INT8_MIN
00054 #define INT8_MIN (-128)
00055 #endif
00056 #ifndef INT16_MIN
00057 #define INT16_MIN (-32767-1)
00058 #endif
00059 #ifndef INT32_MIN
00060 #define INT32_MIN (-2147483647-1)
00061 #endif
00062 #ifndef INT8_MAX
00063 #define INT8_MAX (127)
00064 #endif
00065 #ifndef INT16_MAX
00066 #define INT16_MAX (32767)
00067 #endif
00068 #ifndef INT32_MAX
00069 #define INT32_MAX (2147483647)
00070 #endif
00071 #ifndef UINT8_MAX
00072 #define UINT8_MAX (255U)
00073 #endif
00074 #ifndef UINT16_MAX
00075 #define UINT16_MAX (65535U)
00076 #endif
00077 #ifndef UINT32_MAX
00078 #define UINT32_MAX (4294967295U)
00079 #endif
00080
00081 #endif
00082
00083
00084 #include <iostream>
00085 #include <errno.h>
00086 #include <cstdlib>
00087 #include <cstring>
00088
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
00122
00123
00124 #define BEGIN (yy_start) = 1 + 2 *
00125
00126
00127
00128
00129
00130 #define YY_START (((yy_start) - 1) / 2)
00131 #define YYSTATE YY_START
00132
00133
00134 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
00135
00136
00137 #define YY_NEW_FILE yyrestart( yyin )
00138
00139 #define YY_END_OF_BUFFER_CHAR 0
00140
00141
00142 #ifndef YY_BUF_SIZE
00143 #define YY_BUF_SIZE 16384
00144 #endif
00145
00146 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
00147 #define YY_TYPEDEF_YY_BUFFER_STATE
00148 typedef struct yy_buffer_state *YY_BUFFER_STATE;
00149 #endif
00150
00151 extern int yyleng;
00152
00153 #define EOB_ACT_CONTINUE_SCAN 0
00154 #define EOB_ACT_END_OF_FILE 1
00155 #define EOB_ACT_LAST_MATCH 2
00156
00157 #define YY_LESS_LINENO(n)
00158
00159
00160 #define yyless(n) \
00161 do \
00162 { \
00163 \
00164 int yyless_macro_arg = (n); \
00165 YY_LESS_LINENO(yyless_macro_arg);\
00166 *yy_cp = (yy_hold_char); \
00167 YY_RESTORE_YY_MORE_OFFSET \
00168 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
00169 YY_DO_BEFORE_ACTION; \
00170 } \
00171 while ( 0 )
00172
00173 #define unput(c) yyunput( c, (yytext_ptr) )
00174
00175
00176
00177
00178
00179
00180 #ifndef YY_TYPEDEF_YY_SIZE_T
00181 #define YY_TYPEDEF_YY_SIZE_T
00182 typedef unsigned int yy_size_t;
00183 #endif
00184
00185 #ifndef YY_STRUCT_YY_BUFFER_STATE
00186 #define YY_STRUCT_YY_BUFFER_STATE
00187 struct yy_buffer_state
00188 {
00189
00190 std::istream* yy_input_file;
00191
00192 char *yy_ch_buf;
00193 char *yy_buf_pos;
00194
00195
00196
00197
00198 yy_size_t yy_buf_size;
00199
00200
00201
00202
00203 int yy_n_chars;
00204
00205
00206
00207
00208
00209 int yy_is_our_buffer;
00210
00211
00212
00213
00214
00215
00216 int yy_is_interactive;
00217
00218
00219
00220
00221
00222 int yy_at_bol;
00223
00224 int yy_bs_lineno;
00225 int yy_bs_column;
00227
00228
00229
00230 int yy_fill_buffer;
00231
00232 int yy_buffer_status;
00233
00234 #define YY_BUFFER_NEW 0
00235 #define YY_BUFFER_NORMAL 1
00236
00237
00238
00239
00240
00241
00242
00243
00244
00245
00246 #define YY_BUFFER_EOF_PENDING 2
00247
00248 };
00249 #endif
00250
00251
00252
00253
00254
00255
00256
00257 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
00258 ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
00259 : NULL)
00260
00261
00262
00263
00264 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
00265
00266 void *CoconutDBCompareSortOrderalloc (yy_size_t );
00267 void *CoconutDBCompareSortOrderrealloc (void *,yy_size_t );
00268 void CoconutDBCompareSortOrderfree (void * );
00269
00270 #define yy_new_buffer yy_create_buffer
00271
00272 #define yy_set_interactive(is_interactive) \
00273 { \
00274 if ( ! YY_CURRENT_BUFFER ){ \
00275 yyensure_buffer_stack (); \
00276 YY_CURRENT_BUFFER_LVALUE = \
00277 yy_create_buffer( yyin, YY_BUF_SIZE ); \
00278 } \
00279 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
00280 }
00281
00282 #define yy_set_bol(at_bol) \
00283 { \
00284 if ( ! YY_CURRENT_BUFFER ){\
00285 yyensure_buffer_stack (); \
00286 YY_CURRENT_BUFFER_LVALUE = \
00287 yy_create_buffer( yyin, YY_BUF_SIZE ); \
00288 } \
00289 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
00290 }
00291
00292 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
00293
00294 #define yywrap() 1
00295 #define YY_SKIP_YYWRAP
00296
00297 typedef unsigned char YY_CHAR;
00298
00299 #define yytext_ptr yytext
00300
00301 #include <FlexLexer.h>
00302 int yyFlexLexer::yylex()
00303 {
00304 LexerError( "yyFlexLexer::yylex invoked but %option yyclass used" );
00305 return 0;
00306 }
00307
00308 #define YY_DECL int dbcompare_sortorder_scanner::yylex()
00309
00310
00311
00312
00313 #define YY_DO_BEFORE_ACTION \
00314 (yytext_ptr) = yy_bp; \
00315 yyleng = (size_t) (yy_cp - yy_bp); \
00316 (yy_hold_char) = *yy_cp; \
00317 *yy_cp = '\0'; \
00318 (yy_c_buf_p) = yy_cp;
00319
00320 #define YY_NUM_RULES 11
00321 #define YY_END_OF_BUFFER 12
00322
00323
00324 struct yy_trans_info
00325 {
00326 flex_int32_t yy_verify;
00327 flex_int32_t yy_nxt;
00328 };
00329 static yyconst flex_int16_t yy_accept[48] =
00330 { 0,
00331 8, 8, 12, 9, 10, 8, 6, 9, 1, 7,
00332 8, 0, 0, 0, 0, 0, 0, 0, 1, 0,
00333 0, 0, 0, 0, 0, 1, 2, 0, 0, 2,
00334 3, 0, 0, 3, 0, 4, 0, 0, 5, 0,
00335 0, 0, 0, 0, 0, 0, 0
00336 } ;
00337
00338 static yyconst flex_int32_t yy_ec[256] =
00339 { 0,
00340 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
00341 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00342 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00343 1, 3, 1, 1, 1, 1, 1, 1, 1, 1,
00344 1, 1, 1, 4, 1, 1, 1, 5, 5, 5,
00345 5, 5, 5, 5, 5, 5, 5, 6, 1, 1,
00346 1, 1, 1, 1, 7, 7, 7, 7, 7, 7,
00347 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
00348 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
00349 1, 1, 1, 1, 1, 1, 8, 7, 9, 10,
00350
00351 11, 12, 13, 7, 14, 7, 7, 15, 16, 17,
00352 7, 7, 7, 18, 19, 20, 21, 7, 7, 22,
00353 7, 7, 1, 23, 1, 1, 1, 1, 1, 1,
00354 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00355 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00356 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00357 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00358 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00359 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00360 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00361
00362 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00363 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00364 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00365 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00366 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00367 1, 1, 1, 1, 1
00368 } ;
00369
00370 static yyconst flex_int32_t yy_meta[24] =
00371 { 0,
00372 1, 1, 2, 1, 2, 1, 2, 2, 2, 2,
00373 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00374 2, 2, 1
00375 } ;
00376
00377 static yyconst flex_int16_t yy_base[51] =
00378 { 0,
00379 0, 23, 61, 67, 67, 56, 67, 44, 55, 67,
00380 54, 0, 36, 42, 43, 0, 32, 46, 45, 36,
00381 25, 28, 20, 24, 19, 36, 27, 28, 17, 67,
00382 67, 24, 17, 22, 21, 67, 21, 13, 67, 8,
00383 11, 3, 5, 5, 0, 0, 67, 64, 7, 5
00384 } ;
00385
00386 static yyconst flex_int16_t yy_def[51] =
00387 { 0,
00388 48, 48, 47, 47, 47, 47, 47, 47, 49, 47,
00389 47, 8, 47, 47, 47, 47, 47, 50, 49, 47,
00390 47, 47, 47, 47, 47, 50, 47, 47, 47, 47,
00391 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
00392 47, 47, 47, 47, 47, 47, 0, 47, 47, 47
00393 } ;
00394
00395 static yyconst flex_int16_t yy_nxt[91] =
00396 { 0,
00397 4, 5, 6, 7, 4, 8, 26, 23, 19, 47,
00398 47, 47, 31, 24, 47, 47, 46, 30, 45, 44,
00399 43, 42, 10, 4, 5, 6, 7, 4, 8, 41,
00400 40, 39, 38, 37, 36, 35, 34, 33, 18, 32,
00401 31, 30, 29, 28, 27, 10, 12, 18, 18, 25,
00402 22, 13, 21, 14, 20, 15, 11, 18, 11, 16,
00403 47, 47, 47, 17, 9, 9, 3, 47, 47, 47,
00404 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
00405 47, 47, 47, 47, 47, 47, 47, 47, 47, 47
00406 } ;
00407
00408 static yyconst flex_int16_t yy_chk[91] =
00409 { 0,
00410 1, 1, 1, 1, 1, 1, 50, 16, 49, 0,
00411 0, 0, 46, 16, 0, 0, 45, 44, 43, 42,
00412 41, 40, 1, 2, 2, 2, 2, 2, 2, 38,
00413 37, 35, 34, 33, 32, 29, 28, 27, 26, 25,
00414 24, 23, 22, 21, 20, 2, 8, 19, 18, 17,
00415 15, 8, 14, 8, 13, 8, 11, 9, 6, 8,
00416 3, 0, 0, 8, 48, 48, 47, 47, 47, 47,
00417 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
00418 47, 47, 47, 47, 47, 47, 47, 47, 47, 47
00419 } ;
00420
00421
00422
00423
00424 #define REJECT reject_used_but_not_detected
00425 #define yymore() yymore_used_but_not_detected
00426 #define YY_MORE_ADJ 0
00427 #define YY_RESTORE_YY_MORE_OFFSET
00428 #line 1 "dbcompare_sortorder_scanner.l"
00429 #line 2 "dbcompare_sortorder_scanner.l"
00430
00431
00432
00433
00434
00435
00436
00437
00438
00439
00440
00441
00442
00443
00444
00445
00446
00447
00448
00449
00450
00451
00452 #line 37 "dbcompare_sortorder_scanner.l"
00453
00454
00455
00456 #include "dbcompare_sortorder_scanner.hh"
00457 typedef coco_api_internal::dbcompare_sortorder_parser::token token;
00458 using coco_api_internal::dbcompare_sortorder_scanner;
00459
00460 #include <coconut_config.h>
00461 #include <cstdlib>
00462 #line 463 "dbcompare_sortorder_scanner.cc"
00463
00464 #define INITIAL 0
00465
00466 #ifndef YY_NO_UNISTD_H
00467
00468
00469
00470
00471 #include <unistd.h>
00472 #endif
00473
00474 #ifndef YY_EXTRA_TYPE
00475 #define YY_EXTRA_TYPE void *
00476 #endif
00477
00478 #ifndef yytext_ptr
00479 static void yy_flex_strncpy (char *,yyconst char *,int );
00480 #endif
00481
00482 #ifdef YY_NEED_STRLEN
00483 static int yy_flex_strlen (yyconst char * );
00484 #endif
00485
00486 #ifndef YY_NO_INPUT
00487
00488 #endif
00489
00490
00491 #ifndef YY_READ_BUF_SIZE
00492 #define YY_READ_BUF_SIZE 8192
00493 #endif
00494
00495
00496 #ifndef ECHO
00497 #define ECHO LexerOutput( yytext, yyleng )
00498 #endif
00499
00500
00501
00502
00503 #ifndef YY_INPUT
00504 #define YY_INPUT(buf,result,max_size) \
00505 \
00506 if ( (result = LexerInput( (char *) buf, max_size )) < 0 ) \
00507 YY_FATAL_ERROR( "input in flex scanner failed" );
00508
00509 #endif
00510
00511
00512
00513
00514
00515 #ifndef yyterminate
00516 #define yyterminate() return YY_NULL
00517 #endif
00518
00519
00520 #ifndef YY_START_STACK_INCR
00521 #define YY_START_STACK_INCR 25
00522 #endif
00523
00524
00525 #ifndef YY_FATAL_ERROR
00526 #define YY_FATAL_ERROR(msg) LexerError( msg )
00527 #endif
00528
00529
00530
00531
00532
00533
00534 #ifndef YY_DECL
00535 #define YY_DECL_IS_OURS 1
00536 #define YY_DECL int yyFlexLexer::yylex()
00537 #endif
00538
00539
00540
00541
00542 #ifndef YY_USER_ACTION
00543 #define YY_USER_ACTION
00544 #endif
00545
00546
00547 #ifndef YY_BREAK
00548 #define YY_BREAK break;
00549 #endif
00550
00551 #define YY_RULE_SETUP \
00552 YY_USER_ACTION
00553
00556 YY_DECL
00557 {
00558 register yy_state_type yy_current_state;
00559 register char *yy_cp, *yy_bp;
00560 register int yy_act;
00561
00562 #line 48 "dbcompare_sortorder_scanner.l"
00563
00564
00565 #line 566 "dbcompare_sortorder_scanner.cc"
00566
00567 if ( (yy_init) )
00568 {
00569 (yy_init) = 0;
00570
00571 #ifdef YY_USER_INIT
00572 YY_USER_INIT;
00573 #endif
00574
00575 if ( ! (yy_start) )
00576 (yy_start) = 1;
00577
00578 if ( ! yyin )
00579 yyin = & std::cin;
00580
00581 if ( ! yyout )
00582 yyout = & std::cout;
00583
00584 if ( ! YY_CURRENT_BUFFER ) {
00585 yyensure_buffer_stack ();
00586 YY_CURRENT_BUFFER_LVALUE =
00587 yy_create_buffer( yyin, YY_BUF_SIZE );
00588 }
00589
00590 yy_load_buffer_state( );
00591 }
00592
00593 while ( 1 )
00594 {
00595 yy_cp = (yy_c_buf_p);
00596
00597
00598 *yy_cp = (yy_hold_char);
00599
00600
00601
00602
00603 yy_bp = yy_cp;
00604
00605 yy_current_state = (yy_start);
00606 yy_match:
00607 do
00608 {
00609 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
00610 if ( yy_accept[yy_current_state] )
00611 {
00612 (yy_last_accepting_state) = yy_current_state;
00613 (yy_last_accepting_cpos) = yy_cp;
00614 }
00615 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
00616 {
00617 yy_current_state = (int) yy_def[yy_current_state];
00618 if ( yy_current_state >= 48 )
00619 yy_c = yy_meta[(unsigned int) yy_c];
00620 }
00621 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
00622 ++yy_cp;
00623 }
00624 while ( yy_current_state != 47 );
00625 yy_cp = (yy_last_accepting_cpos);
00626 yy_current_state = (yy_last_accepting_state);
00627
00628 yy_find_action:
00629 yy_act = yy_accept[yy_current_state];
00630
00631 YY_DO_BEFORE_ACTION;
00632
00633 do_action:
00634
00635 switch ( yy_act )
00636 {
00637 case 0:
00638
00639 *yy_cp = (yy_hold_char);
00640 yy_cp = (yy_last_accepting_cpos);
00641 yy_current_state = (yy_last_accepting_state);
00642 goto yy_find_action;
00643
00644 case 1:
00645 YY_RULE_SETUP
00646 #line 50 "dbcompare_sortorder_scanner.l"
00647 { yylval->varname = new std::string(YYText()); return token::VARNAME; }
00648 YY_BREAK
00649 case 2:
00650 YY_RULE_SETUP
00651 #line 51 "dbcompare_sortorder_scanner.l"
00652 { return token::SORT_MAX; }
00653 YY_BREAK
00654 case 3:
00655 YY_RULE_SETUP
00656 #line 52 "dbcompare_sortorder_scanner.l"
00657 { return token::SORT_MIN; }
00658 YY_BREAK
00659 case 4:
00660 YY_RULE_SETUP
00661 #line 53 "dbcompare_sortorder_scanner.l"
00662 { return token::SORT_TRUE; }
00663 YY_BREAK
00664 case 5:
00665 YY_RULE_SETUP
00666 #line 54 "dbcompare_sortorder_scanner.l"
00667 { return token::SORT_FALSE; }
00668 YY_BREAK
00669 case 6:
00670 YY_RULE_SETUP
00671 #line 55 "dbcompare_sortorder_scanner.l"
00672 { return token::COMMA; }
00673 YY_BREAK
00674 case 7:
00675 YY_RULE_SETUP
00676 #line 56 "dbcompare_sortorder_scanner.l"
00677 { return token::OP_ABS; }
00678 YY_BREAK
00679 case 8:
00680 YY_RULE_SETUP
00681 #line 57 "dbcompare_sortorder_scanner.l"
00682 { }
00683 YY_BREAK
00684 case 9:
00685 YY_RULE_SETUP
00686 #line 58 "dbcompare_sortorder_scanner.l"
00687 {
00688 if (errormsg.empty()) {
00689 errormsg = "unexpected character `";
00690 errormsg += YYText();
00691 errormsg += "\' in sortorder";
00692 }
00693 return token::SCAN_ERROR;
00694 }
00695 YY_BREAK
00696 case 10:
00697
00698 YY_RULE_SETUP
00699 #line 66 "dbcompare_sortorder_scanner.l"
00700 {
00701 if (errormsg.empty())
00702 errormsg = "unexpected newline in sortorder";
00703 return token::SCAN_ERROR;
00704 }
00705 YY_BREAK
00706 case 11:
00707 YY_RULE_SETUP
00708 #line 71 "dbcompare_sortorder_scanner.l"
00709 YY_FATAL_ERROR( "flex scanner jammed" );
00710 YY_BREAK
00711 #line 712 "dbcompare_sortorder_scanner.cc"
00712 case YY_STATE_EOF(INITIAL):
00713 yyterminate();
00714
00715 case YY_END_OF_BUFFER:
00716 {
00717
00718 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
00719
00720
00721 *yy_cp = (yy_hold_char);
00722 YY_RESTORE_YY_MORE_OFFSET
00723
00724 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
00725 {
00726
00727
00728
00729
00730
00731
00732
00733
00734
00735 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
00736 YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
00737 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
00738 }
00739
00740
00741
00742
00743
00744
00745
00746
00747 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
00748 {
00749 yy_state_type yy_next_state;
00750
00751 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
00752
00753 yy_current_state = yy_get_previous_state( );
00754
00755
00756
00757
00758
00759
00760
00761
00762
00763
00764 yy_next_state = yy_try_NUL_trans( yy_current_state );
00765
00766 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
00767
00768 if ( yy_next_state )
00769 {
00770
00771 yy_cp = ++(yy_c_buf_p);
00772 yy_current_state = yy_next_state;
00773 goto yy_match;
00774 }
00775
00776 else
00777 {
00778 yy_cp = (yy_last_accepting_cpos);
00779 yy_current_state = (yy_last_accepting_state);
00780 goto yy_find_action;
00781 }
00782 }
00783
00784 else switch ( yy_get_next_buffer( ) )
00785 {
00786 case EOB_ACT_END_OF_FILE:
00787 {
00788 (yy_did_buffer_switch_on_eof) = 0;
00789
00790 if ( yywrap( ) )
00791 {
00792
00793
00794
00795
00796
00797
00798
00799
00800
00801 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
00802
00803 yy_act = YY_STATE_EOF(YY_START);
00804 goto do_action;
00805 }
00806
00807 else
00808 {
00809 if ( ! (yy_did_buffer_switch_on_eof) )
00810 YY_NEW_FILE;
00811 }
00812 break;
00813 }
00814
00815 case EOB_ACT_CONTINUE_SCAN:
00816 (yy_c_buf_p) =
00817 (yytext_ptr) + yy_amount_of_matched_text;
00818
00819 yy_current_state = yy_get_previous_state( );
00820
00821 yy_cp = (yy_c_buf_p);
00822 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
00823 goto yy_match;
00824
00825 case EOB_ACT_LAST_MATCH:
00826 (yy_c_buf_p) =
00827 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
00828
00829 yy_current_state = yy_get_previous_state( );
00830
00831 yy_cp = (yy_c_buf_p);
00832 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
00833 goto yy_find_action;
00834 }
00835 break;
00836 }
00837
00838 default:
00839 YY_FATAL_ERROR(
00840 "fatal flex scanner internal error--no action found" );
00841 }
00842 }
00843 }
00844
00845 yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout )
00846 {
00847 yyin = arg_yyin;
00848 yyout = arg_yyout;
00849 yy_c_buf_p = 0;
00850 yy_init = 1;
00851 yy_start = 0;
00852 yy_flex_debug = 0;
00853 yylineno = 1;
00854
00855 yy_did_buffer_switch_on_eof = 0;
00856
00857 yy_looking_for_trail_begin = 0;
00858 yy_more_flag = 0;
00859 yy_more_len = 0;
00860 yy_more_offset = yy_prev_more_offset = 0;
00861
00862 yy_start_stack_ptr = yy_start_stack_depth = 0;
00863 yy_start_stack = 0;
00864
00865 (yy_buffer_stack) = 0;
00866 (yy_buffer_stack_top) = 0;
00867 (yy_buffer_stack_max) = 0;
00868
00869 yy_state_buf = 0;
00870
00871 }
00872
00873 void yyFlexLexer::switch_streams( std::istream* new_in, std::ostream* new_out )
00874 {
00875 if ( new_in )
00876 {
00877 yy_delete_buffer( YY_CURRENT_BUFFER );
00878 yy_switch_to_buffer( yy_create_buffer( new_in, YY_BUF_SIZE ) );
00879 }
00880
00881 if ( new_out )
00882 yyout = new_out;
00883 }
00884
00885 #ifdef YY_INTERACTIVE
00886 int yyFlexLexer::LexerInput( char* buf, int )
00887 #else
00888 int yyFlexLexer::LexerInput( char* buf, int max_size )
00889 #endif
00890 {
00891 if ( yyin->eof() || yyin->fail() )
00892 return 0;
00893
00894 #ifdef YY_INTERACTIVE
00895 yyin->get( buf[0] );
00896
00897 if ( yyin->eof() )
00898 return 0;
00899
00900 if ( yyin->bad() )
00901 return -1;
00902
00903 return 1;
00904
00905 #else
00906 (void) yyin->read( buf, max_size );
00907
00908 if ( yyin->bad() )
00909 return -1;
00910 else
00911 return yyin->gcount();
00912 #endif
00913 }
00914
00915 void yyFlexLexer::LexerOutput( const char* buf, int size )
00916 {
00917 (void) yyout->write( buf, size );
00918 }
00919
00920
00921
00922
00923
00924
00925
00926
00927 int yyFlexLexer::yy_get_next_buffer()
00928 {
00929 register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
00930 register char *source = (yytext_ptr);
00931 register int number_to_move, i;
00932 int ret_val;
00933
00934 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
00935 YY_FATAL_ERROR(
00936 "fatal flex scanner internal error--end of buffer missed" );
00937
00938 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
00939 {
00940 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
00941 {
00942
00943
00944
00945 return EOB_ACT_END_OF_FILE;
00946 }
00947
00948 else
00949 {
00950
00951
00952
00953 return EOB_ACT_LAST_MATCH;
00954 }
00955 }
00956
00957
00958
00959
00960 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
00961
00962 for ( i = 0; i < number_to_move; ++i )
00963 *(dest++) = *(source++);
00964
00965 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
00966
00967
00968
00969 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
00970
00971 else
00972 {
00973 int num_to_read =
00974 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
00975
00976 while ( num_to_read <= 0 )
00977 {
00978
00979
00980 YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
00981
00982 int yy_c_buf_p_offset =
00983 (int) ((yy_c_buf_p) - b->yy_ch_buf);
00984
00985 if ( b->yy_is_our_buffer )
00986 {
00987 int new_size = b->yy_buf_size * 2;
00988
00989 if ( new_size <= 0 )
00990 b->yy_buf_size += b->yy_buf_size / 8;
00991 else
00992 b->yy_buf_size *= 2;
00993
00994 b->yy_ch_buf = (char *)
00995
00996 CoconutDBCompareSortOrderrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
00997 }
00998 else
00999
01000 b->yy_ch_buf = 0;
01001
01002 if ( ! b->yy_ch_buf )
01003 YY_FATAL_ERROR(
01004 "fatal error - scanner input buffer overflow" );
01005
01006 (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
01007
01008 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
01009 number_to_move - 1;
01010
01011 }
01012
01013 if ( num_to_read > YY_READ_BUF_SIZE )
01014 num_to_read = YY_READ_BUF_SIZE;
01015
01016
01017 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
01018 (yy_n_chars), num_to_read );
01019
01020 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
01021 }
01022
01023 if ( (yy_n_chars) == 0 )
01024 {
01025 if ( number_to_move == YY_MORE_ADJ )
01026 {
01027 ret_val = EOB_ACT_END_OF_FILE;
01028 yyrestart( yyin );
01029 }
01030
01031 else
01032 {
01033 ret_val = EOB_ACT_LAST_MATCH;
01034 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
01035 YY_BUFFER_EOF_PENDING;
01036 }
01037 }
01038
01039 else
01040 ret_val = EOB_ACT_CONTINUE_SCAN;
01041
01042 (yy_n_chars) += number_to_move;
01043 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
01044 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
01045
01046 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
01047
01048 return ret_val;
01049 }
01050
01051
01052
01053 yy_state_type yyFlexLexer::yy_get_previous_state()
01054 {
01055 register yy_state_type yy_current_state;
01056 register char *yy_cp;
01057
01058 yy_current_state = (yy_start);
01059
01060 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
01061 {
01062 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
01063 if ( yy_accept[yy_current_state] )
01064 {
01065 (yy_last_accepting_state) = yy_current_state;
01066 (yy_last_accepting_cpos) = yy_cp;
01067 }
01068 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
01069 {
01070 yy_current_state = (int) yy_def[yy_current_state];
01071 if ( yy_current_state >= 48 )
01072 yy_c = yy_meta[(unsigned int) yy_c];
01073 }
01074 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
01075 }
01076
01077 return yy_current_state;
01078 }
01079
01080
01081
01082
01083
01084
01085 yy_state_type yyFlexLexer::yy_try_NUL_trans( yy_state_type yy_current_state )
01086 {
01087 register int yy_is_jam;
01088 register char *yy_cp = (yy_c_buf_p);
01089
01090 register YY_CHAR yy_c = 1;
01091 if ( yy_accept[yy_current_state] )
01092 {
01093 (yy_last_accepting_state) = yy_current_state;
01094 (yy_last_accepting_cpos) = yy_cp;
01095 }
01096 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
01097 {
01098 yy_current_state = (int) yy_def[yy_current_state];
01099 if ( yy_current_state >= 48 )
01100 yy_c = yy_meta[(unsigned int) yy_c];
01101 }
01102 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
01103 yy_is_jam = (yy_current_state == 47);
01104
01105 return yy_is_jam ? 0 : yy_current_state;
01106 }
01107
01108 void yyFlexLexer::yyunput( int c, register char* yy_bp)
01109 {
01110 register char *yy_cp;
01111
01112 yy_cp = (yy_c_buf_p);
01113
01114
01115 *yy_cp = (yy_hold_char);
01116
01117 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
01118 {
01119
01120 register int number_to_move = (yy_n_chars) + 2;
01121 register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
01122 YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
01123 register char *source =
01124 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
01125
01126 while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
01127 *--dest = *--source;
01128
01129 yy_cp += (int) (dest - source);
01130 yy_bp += (int) (dest - source);
01131 YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
01132 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
01133
01134 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
01135 YY_FATAL_ERROR( "flex scanner push-back overflow" );
01136 }
01137
01138 *--yy_cp = (char) c;
01139
01140 (yytext_ptr) = yy_bp;
01141 (yy_hold_char) = *yy_cp;
01142 (yy_c_buf_p) = yy_cp;
01143 }
01144
01145 int yyFlexLexer::yyinput()
01146 {
01147 int c;
01148
01149 *(yy_c_buf_p) = (yy_hold_char);
01150
01151 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
01152 {
01153
01154
01155
01156
01157 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
01158
01159 *(yy_c_buf_p) = '\0';
01160
01161 else
01162 {
01163 int offset = (yy_c_buf_p) - (yytext_ptr);
01164 ++(yy_c_buf_p);
01165
01166 switch ( yy_get_next_buffer( ) )
01167 {
01168 case EOB_ACT_LAST_MATCH:
01169
01170
01171
01172
01173
01174
01175
01176
01177
01178
01179
01180 yyrestart( yyin );
01181
01182
01183
01184 case EOB_ACT_END_OF_FILE:
01185 {
01186 if ( yywrap( ) )
01187 return EOF;
01188
01189 if ( ! (yy_did_buffer_switch_on_eof) )
01190 YY_NEW_FILE;
01191 #ifdef __cplusplus
01192 return yyinput();
01193 #else
01194 return input();
01195 #endif
01196 }
01197
01198 case EOB_ACT_CONTINUE_SCAN:
01199 (yy_c_buf_p) = (yytext_ptr) + offset;
01200 break;
01201 }
01202 }
01203 }
01204
01205 c = *(unsigned char *) (yy_c_buf_p);
01206 *(yy_c_buf_p) = '\0';
01207 (yy_hold_char) = *++(yy_c_buf_p);
01208
01209 return c;
01210 }
01211
01217 void yyFlexLexer::yyrestart( std::istream* input_file )
01218 {
01219
01220 if ( ! YY_CURRENT_BUFFER ){
01221 yyensure_buffer_stack ();
01222 YY_CURRENT_BUFFER_LVALUE =
01223 yy_create_buffer( yyin, YY_BUF_SIZE );
01224 }
01225
01226 yy_init_buffer( YY_CURRENT_BUFFER, input_file );
01227 yy_load_buffer_state( );
01228 }
01229
01234 void yyFlexLexer::yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
01235 {
01236
01237
01238
01239
01240
01241
01242 yyensure_buffer_stack ();
01243 if ( YY_CURRENT_BUFFER == new_buffer )
01244 return;
01245
01246 if ( YY_CURRENT_BUFFER )
01247 {
01248
01249 *(yy_c_buf_p) = (yy_hold_char);
01250 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
01251 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
01252 }
01253
01254 YY_CURRENT_BUFFER_LVALUE = new_buffer;
01255 yy_load_buffer_state( );
01256
01257
01258
01259
01260
01261
01262 (yy_did_buffer_switch_on_eof) = 1;
01263 }
01264
01265 void yyFlexLexer::yy_load_buffer_state()
01266 {
01267 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
01268 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
01269 yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
01270 (yy_hold_char) = *(yy_c_buf_p);
01271 }
01272
01279 YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream* file, int size )
01280 {
01281 YY_BUFFER_STATE b;
01282
01283 b = (YY_BUFFER_STATE) CoconutDBCompareSortOrderalloc(sizeof( struct yy_buffer_state ) );
01284 if ( ! b )
01285 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
01286
01287 b->yy_buf_size = size;
01288
01289
01290
01291
01292 b->yy_ch_buf = (char *) CoconutDBCompareSortOrderalloc(b->yy_buf_size + 2 );
01293 if ( ! b->yy_ch_buf )
01294 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
01295
01296 b->yy_is_our_buffer = 1;
01297
01298 yy_init_buffer( b, file );
01299
01300 return b;
01301 }
01302
01307 void yyFlexLexer::yy_delete_buffer( YY_BUFFER_STATE b )
01308 {
01309
01310 if ( ! b )
01311 return;
01312
01313 if ( b == YY_CURRENT_BUFFER )
01314 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
01315
01316 if ( b->yy_is_our_buffer )
01317 CoconutDBCompareSortOrderfree((void *) b->yy_ch_buf );
01318
01319 CoconutDBCompareSortOrderfree((void *) b );
01320 }
01321
01322
01323
01324
01325
01326 void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream* file )
01327
01328 {
01329 int oerrno = errno;
01330
01331 yy_flush_buffer( b );
01332
01333 b->yy_input_file = file;
01334 b->yy_fill_buffer = 1;
01335
01336
01337
01338
01339
01340 if (b != YY_CURRENT_BUFFER){
01341 b->yy_bs_lineno = 1;
01342 b->yy_bs_column = 0;
01343 }
01344
01345 b->yy_is_interactive = 0;
01346 errno = oerrno;
01347 }
01348
01353 void yyFlexLexer::yy_flush_buffer( YY_BUFFER_STATE b )
01354 {
01355 if ( ! b )
01356 return;
01357
01358 b->yy_n_chars = 0;
01359
01360
01361
01362
01363
01364 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
01365 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
01366
01367 b->yy_buf_pos = &b->yy_ch_buf[0];
01368
01369 b->yy_at_bol = 1;
01370 b->yy_buffer_status = YY_BUFFER_NEW;
01371
01372 if ( b == YY_CURRENT_BUFFER )
01373 yy_load_buffer_state( );
01374 }
01375
01382 void yyFlexLexer::yypush_buffer_state (YY_BUFFER_STATE new_buffer)
01383 {
01384 if (new_buffer == NULL)
01385 return;
01386
01387 yyensure_buffer_stack();
01388
01389
01390 if ( YY_CURRENT_BUFFER )
01391 {
01392
01393 *(yy_c_buf_p) = (yy_hold_char);
01394 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
01395 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
01396 }
01397
01398
01399 if (YY_CURRENT_BUFFER)
01400 (yy_buffer_stack_top)++;
01401 YY_CURRENT_BUFFER_LVALUE = new_buffer;
01402
01403
01404 yy_load_buffer_state( );
01405 (yy_did_buffer_switch_on_eof) = 1;
01406 }
01407
01412 void yyFlexLexer::yypop_buffer_state (void)
01413 {
01414 if (!YY_CURRENT_BUFFER)
01415 return;
01416
01417 yy_delete_buffer(YY_CURRENT_BUFFER );
01418 YY_CURRENT_BUFFER_LVALUE = NULL;
01419 if ((yy_buffer_stack_top) > 0)
01420 --(yy_buffer_stack_top);
01421
01422 if (YY_CURRENT_BUFFER) {
01423 yy_load_buffer_state( );
01424 (yy_did_buffer_switch_on_eof) = 1;
01425 }
01426 }
01427
01428
01429
01430
01431 void yyFlexLexer::yyensure_buffer_stack(void)
01432 {
01433 int num_to_alloc;
01434
01435 if (!(yy_buffer_stack)) {
01436
01437
01438
01439
01440
01441 num_to_alloc = 1;
01442 (yy_buffer_stack) = (struct yy_buffer_state**)CoconutDBCompareSortOrderalloc
01443 (num_to_alloc * sizeof(struct yy_buffer_state*)
01444 );
01445
01446 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
01447
01448 (yy_buffer_stack_max) = num_to_alloc;
01449 (yy_buffer_stack_top) = 0;
01450 return;
01451 }
01452
01453 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
01454
01455
01456 int grow_size = 8 ;
01457
01458 num_to_alloc = (yy_buffer_stack_max) + grow_size;
01459 (yy_buffer_stack) = (struct yy_buffer_state**)CoconutDBCompareSortOrderrealloc
01460 ((yy_buffer_stack),
01461 num_to_alloc * sizeof(struct yy_buffer_state*)
01462 );
01463
01464
01465 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
01466 (yy_buffer_stack_max) = num_to_alloc;
01467 }
01468 }
01469
01470 void yyFlexLexer::yy_push_state( int new_state )
01471 {
01472 if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
01473 {
01474 yy_size_t new_size;
01475
01476 (yy_start_stack_depth) += YY_START_STACK_INCR;
01477 new_size = (yy_start_stack_depth) * sizeof( int );
01478
01479 if ( ! (yy_start_stack) )
01480 (yy_start_stack) = (int *) CoconutDBCompareSortOrderalloc(new_size );
01481
01482 else
01483 (yy_start_stack) = (int *) CoconutDBCompareSortOrderrealloc((void *) (yy_start_stack),new_size );
01484
01485 if ( ! (yy_start_stack) )
01486 YY_FATAL_ERROR(
01487 "out of memory expanding start-condition stack" );
01488 }
01489
01490 (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
01491
01492 BEGIN(new_state);
01493 }
01494
01495 void yyFlexLexer::yy_pop_state()
01496 {
01497 if ( --(yy_start_stack_ptr) < 0 )
01498 YY_FATAL_ERROR( "start-condition stack underflow" );
01499
01500 BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
01501 }
01502
01503 int yyFlexLexer::yy_top_state()
01504 {
01505 return (yy_start_stack)[(yy_start_stack_ptr) - 1];
01506 }
01507
01508 #ifndef YY_EXIT_FAILURE
01509 #define YY_EXIT_FAILURE 2
01510 #endif
01511
01512 void yyFlexLexer::LexerError( yyconst char msg[] )
01513 {
01514 std::cerr << msg << std::endl;
01515 exit( YY_EXIT_FAILURE );
01516 }
01517
01518
01519
01520 #undef yyless
01521 #define yyless(n) \
01522 do \
01523 { \
01524 \
01525 int yyless_macro_arg = (n); \
01526 YY_LESS_LINENO(yyless_macro_arg);\
01527 yytext[yyleng] = (yy_hold_char); \
01528 (yy_c_buf_p) = yytext + yyless_macro_arg; \
01529 (yy_hold_char) = *(yy_c_buf_p); \
01530 *(yy_c_buf_p) = '\0'; \
01531 yyleng = yyless_macro_arg; \
01532 } \
01533 while ( 0 )
01534
01535
01536
01537 yyFlexLexer::~yyFlexLexer()
01538 {
01539
01540
01541 while(YY_CURRENT_BUFFER){
01542 yy_delete_buffer( YY_CURRENT_BUFFER );
01543 YY_CURRENT_BUFFER_LVALUE = NULL;
01544 yypop_buffer_state();
01545 }
01546
01547
01548 CoconutDBCompareSortOrderfree((yy_buffer_stack) );
01549 (yy_buffer_stack) = NULL;
01550
01551 delete [] (yy_state_buf);
01552 CoconutDBCompareSortOrderfree((yy_start_stack) );
01553
01554 }
01555
01556
01557
01558
01559
01560 #ifndef yytext_ptr
01561 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
01562 {
01563 register int i;
01564 for ( i = 0; i < n; ++i )
01565 s1[i] = s2[i];
01566 }
01567 #endif
01568
01569 #ifdef YY_NEED_STRLEN
01570 static int yy_flex_strlen (yyconst char * s )
01571 {
01572 register int n;
01573 for ( n = 0; s[n]; ++n )
01574 ;
01575
01576 return n;
01577 }
01578 #endif
01579
01580 void *CoconutDBCompareSortOrderalloc (yy_size_t size )
01581 {
01582 return (void *) malloc( size );
01583 }
01584
01585 void *CoconutDBCompareSortOrderrealloc (void * ptr, yy_size_t size )
01586 {
01587
01588
01589
01590
01591
01592
01593
01594 return (void *) realloc( (char *) ptr, size );
01595 }
01596
01597 void CoconutDBCompareSortOrderfree (void * ptr )
01598 {
01599 free( (char *) ptr );
01600 }
01601
01602 #define YYTABLES_NAME "yytables"
01603
01604 #undef YY_NEW_FILE
01605 #undef YY_FLUSH_BUFFER
01606 #undef yy_set_bol
01607 #undef yy_new_buffer
01608 #undef yy_set_interactive
01609 #undef yytext_ptr
01610 #undef YY_DO_BEFORE_ACTION
01611
01612 #ifdef YY_DECL_IS_OURS
01613 #undef YY_DECL_IS_OURS
01614 #undef YY_DECL
01615 #endif
01616 #line 71 "dbcompare_sortorder_scanner.l"