1#line 2 "sqlscanner.cpp"
9#define YY_FLEX_MAJOR_VERSION 2
10#define YY_FLEX_MINOR_VERSION 5
54#define YY_PROTO(proto) proto
56#define YY_PROTO(proto) ()
68#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
74#define BEGIN yy_start = 1 + 2 *
80#define YY_START ((yy_start - 1) / 2)
81#define YYSTATE YY_START
84#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
87#define YY_NEW_FILE yyrestart( yyin )
89#define YY_END_OF_BUFFER_CHAR 0
92#define YY_BUF_SIZE 16384
94typedef struct yy_buffer_state *YY_BUFFER_STATE;
97extern FILE *yyin, *yyout;
99#define EOB_ACT_CONTINUE_SCAN 0
100#define EOB_ACT_END_OF_FILE 1
101#define EOB_ACT_LAST_MATCH 2
123 *yy_cp = yy_hold_char; \
124 YY_RESTORE_YY_MORE_OFFSET \
125 yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
126 YY_DO_BEFORE_ACTION; \
130#define unput(c) yyunput( c, yytext_ptr )
136typedef unsigned int yy_size_t;
139struct yy_buffer_state
149 yy_size_t yy_buf_size;
160 int yy_is_our_buffer;
167 int yy_is_interactive;
180 int yy_buffer_status;
181#define YY_BUFFER_NEW 0
182#define YY_BUFFER_NORMAL 1
193#define YY_BUFFER_EOF_PENDING 2
196static YY_BUFFER_STATE yy_current_buffer = 0;
202#define YY_CURRENT_BUFFER yy_current_buffer
206static char yy_hold_char;
208static int yy_n_chars;
214static char *yy_c_buf_p = ( char *) 0;
215static int yy_init = 1;
216static int yy_start = 0;
221static int yy_did_buffer_switch_on_eof;
223void yyrestart YY_PROTO(( FILE *input_file ));
225void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
226void yy_load_buffer_state YY_PROTO(( void ));
227YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
228void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
229void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
230void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
231#define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
233YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
234YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
235YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
237static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
238static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
239static void yy_flex_free YY_PROTO(( void * ));
241#define yy_new_buffer yy_create_buffer
243#define yy_set_interactive(is_interactive) \
245 if ( ! yy_current_buffer ) \
246 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
247 yy_current_buffer->yy_is_interactive = is_interactive; \
250#define yy_set_bol(at_bol) \
252 if ( ! yy_current_buffer ) \
253 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
254 yy_current_buffer->yy_at_bol = at_bol; \
257#define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
261#define YY_SKIP_YYWRAP
262typedef unsigned char YY_CHAR;
263FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
264typedef int yy_state_type;
266#define yytext_ptr yytext
268static yy_state_type yy_get_previous_state YY_PROTO(( void ));
269static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
270static int yy_get_next_buffer YY_PROTO(( void ));
271static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
276#define YY_DO_BEFORE_ACTION \
277 yytext_ptr = yy_bp; \
278 yyleng = (int) (yy_cp - yy_bp); \
279 yy_hold_char = *yy_cp; \
283#define YY_NUM_RULES 43
284#define YY_END_OF_BUFFER 44
285static yyconst short int yy_accept[148] =
287 0, 0, 44, 43, 41, 42, 43, 42, 42, 43,
288 42, 7, 42, 42, 42, 42, 39, 39, 39, 39,
289 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
290 39, 39, 42, 41, 2, 0, 38, 9, 0, 8,
291 8, 7, 39, 27, 4, 1, 3, 5, 28, 0,
292 39, 10, 35, 39, 39, 39, 6, 22, 39, 39,
293 39, 39, 39, 24, 25, 39, 39, 39, 39, 39,
294 39, 26, 8, 40, 9, 36, 39, 39, 39, 39,
295 0, 39, 39, 39, 21, 39, 39, 39, 39, 39,
296 39, 39, 29, 39, 37, 12, 39, 0, 14, 15,
298 16, 0, 23, 39, 39, 39, 39, 39, 39, 39,
299 39, 0, 0, 0, 34, 30, 39, 39, 32, 33,
300 11, 39, 0, 0, 0, 31, 39, 13, 0, 20,
301 0, 39, 0, 0, 0, 0, 0, 0, 0, 0,
302 18, 19, 0, 0, 0, 17, 0
305static yyconst int yy_ec[256] =
307 1, 1, 1, 1, 1, 1, 1, 1, 2, 2,
308 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
309 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
310 1, 2, 3, 4, 5, 1, 5, 6, 7, 5,
311 5, 5, 5, 5, 5, 8, 5, 9, 9, 9,
312 9, 9, 9, 9, 9, 9, 9, 5, 5, 10,
313 11, 12, 5, 5, 16, 17, 18, 19, 20, 21,
314 22, 23, 24, 25, 26, 27, 28, 29, 30, 15,
315 15, 31, 32, 33, 34, 15, 35, 36, 37, 15,
316 13, 1, 14, 5, 15, 5, 16, 17, 18, 19,
318 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
319 30, 15, 15, 31, 32, 33, 34, 15, 35, 36,
320 37, 15, 1, 38, 1, 5, 1, 1, 1, 1,
321 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
322 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
323 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
324 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
325 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
326 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
327 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
329 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
330 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
331 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
332 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
333 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
337static yyconst int yy_meta[39] =
339 1, 1, 1, 1, 1, 1, 1, 2, 2, 1,
340 1, 1, 3, 3, 2, 2, 2, 2, 2, 2,
341 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
342 2, 2, 2, 2, 2, 2, 2, 1
345static yyconst short int yy_base[152] =
347 0, 0, 254, 255, 251, 241, 247, 255, 244, 242,
348 239, 31, 31, 236, 33, 0, 238, 38, 39, 40,
349 41, 42, 43, 44, 45, 47, 49, 55, 74, 46,
350 60, 56, 207, 242, 255, 239, 255, 255, 235, 232,
351 231, 50, 231, 255, 255, 255, 255, 255, 255, 224,
352 76, 48, 229, 77, 79, 80, 81, 88, 83, 84,
353 91, 85, 92, 228, 93, 94, 95, 96, 98, 100,
354 101, 255, 226, 255, 226, 225, 105, 115, 117, 118,
355 125, 120, 122, 121, 129, 126, 127, 128, 132, 134,
356 135, 136, 224, 131, 223, 222, 138, 127, 221, 220,
358 219, 146, 218, 142, 148, 151, 155, 157, 160, 163,
359 164, 192, 188, 190, 205, 204, 158, 171, 203, 202,
360 201, 162, 206, 179, 177, 196, 166, 195, 173, 255,
361 177, 184, 166, 172, 174, 171, 180, 165, 167, 159,
362 255, 255, 187, 183, 158, 255, 255, 216, 219, 58,
366static yyconst short int yy_def[152] =
368 147, 1, 147, 147, 147, 147, 148, 147, 147, 149,
369 147, 150, 147, 147, 147, 151, 150, 150, 150, 150,
370 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
371 150, 150, 147, 147, 147, 148, 147, 147, 149, 147,
372 147, 150, 150, 147, 147, 147, 147, 147, 147, 151,
373 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
374 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
375 150, 147, 147, 147, 150, 150, 150, 150, 150, 150,
376 147, 150, 150, 150, 150, 150, 150, 150, 150, 150,
377 150, 150, 150, 150, 150, 150, 150, 147, 150, 150,
379 150, 147, 150, 150, 150, 150, 150, 150, 150, 150,
380 150, 147, 147, 147, 150, 150, 150, 150, 150, 150,
381 150, 150, 147, 147, 147, 150, 150, 150, 147, 147,
382 147, 150, 147, 147, 147, 147, 147, 147, 147, 147,
383 147, 147, 147, 147, 147, 147, 0, 147, 147, 147,
387static yyconst short int yy_nxt[294] =
389 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
390 14, 15, 16, 8, 17, 18, 19, 20, 21, 17,
391 22, 17, 17, 23, 24, 17, 25, 17, 26, 27,
392 28, 29, 30, 17, 31, 32, 17, 33, 41, 42,
393 44, 45, 46, 48, 49, 147, 147, 147, 147, 147,
394 147, 147, 147, 147, 147, 147, 147, 41, 42, 43,
395 55, 69, 147, 147, 60, 76, 51, 147, 61, 52,
396 54, 57, 56, 59, 58, 53, 62, 64, 66, 65,
397 63, 147, 70, 147, 147, 71, 147, 147, 147, 81,
398 147, 147, 147, 67, 75, 147, 77, 68, 147, 147,
400 147, 147, 147, 147, 83, 147, 82, 147, 147, 79,
401 78, 87, 147, 80, 91, 88, 84, 85, 86, 92,
402 94, 89, 147, 90, 147, 147, 81, 147, 147, 147,
403 102, 93, 95, 147, 147, 147, 147, 97, 147, 147,
404 101, 147, 147, 147, 96, 147, 104, 102, 99, 147,
405 105, 106, 103, 98, 100, 147, 112, 107, 147, 111,
406 113, 108, 147, 110, 147, 147, 109, 147, 117, 147,
407 147, 147, 115, 147, 129, 135, 119, 114, 147, 120,
408 116, 118, 121, 122, 144, 135, 127, 146, 144, 143,
409 126, 147, 128, 142, 141, 140, 132, 139, 137, 136,
411 134, 133, 147, 147, 131, 130, 138, 129, 147, 147,
412 147, 147, 147, 125, 124, 145, 36, 36, 36, 39,
413 39, 39, 50, 50, 123, 147, 147, 147, 147, 147,
414 147, 147, 147, 147, 73, 147, 147, 74, 147, 73,
415 40, 37, 37, 34, 72, 147, 47, 40, 37, 38,
416 37, 35, 34, 147, 3, 147, 147, 147, 147, 147,
417 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
418 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
419 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
424static yyconst short int yy_chk[294] =
426 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
427 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
428 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
429 1, 1, 1, 1, 1, 1, 1, 1, 12, 12,
430 13, 13, 13, 15, 15, 18, 19, 20, 21, 22,
431 23, 24, 25, 30, 26, 52, 27, 42, 42, 150,
432 21, 30, 28, 32, 25, 52, 18, 31, 25, 18,
433 20, 23, 22, 24, 23, 19, 26, 27, 28, 27,
434 26, 29, 31, 51, 54, 32, 55, 56, 57, 58,
435 59, 60, 62, 29, 51, 58, 54, 29, 61, 63,
437 65, 66, 67, 68, 60, 69, 59, 70, 71, 56,
438 55, 65, 77, 57, 69, 66, 61, 62, 63, 70,
439 77, 67, 78, 68, 79, 80, 81, 82, 84, 83,
440 85, 71, 78, 86, 87, 88, 85, 80, 94, 89,
441 84, 90, 91, 92, 79, 97, 87, 102, 82, 104,
442 88, 89, 86, 81, 83, 105, 98, 90, 106, 97,
443 98, 91, 107, 94, 108, 117, 92, 109, 106, 122,
444 110, 111, 104, 127, 129, 135, 108, 102, 118, 109,
445 105, 107, 110, 111, 144, 132, 118, 145, 143, 140,
446 117, 132, 122, 139, 138, 137, 127, 136, 134, 133,
448 131, 129, 128, 126, 125, 124, 135, 123, 121, 120,
449 119, 116, 115, 114, 113, 144, 148, 148, 148, 149,
450 149, 149, 151, 151, 112, 103, 101, 100, 99, 96,
451 95, 93, 76, 75, 73, 64, 53, 50, 43, 41,
452 40, 39, 36, 34, 33, 17, 14, 11, 10, 9,
453 7, 6, 5, 3, 147, 147, 147, 147, 147, 147,
454 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
455 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
456 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
461static yy_state_type yy_last_accepting_state;
462static char *yy_last_accepting_cpos;
467#define REJECT reject_used_but_not_detected
468#define yymore() yymore_used_but_not_detected
470#define YY_RESTORE_YY_MORE_OFFSET
472#line 1 "sqlscanner.l"
493#line 22 "sqlscanner.l"
495#include <expression.h>
497#include "sqlparser.h"
501#include <tdelocale.h>
504#define ECOUNT current += yyleng; ctoken = yytext
506extern void setError( const TQString& errDesc);
507extern void setError( const TQString& errName, const TQString& errDesc);
510#define YY_NEVER_INTERACTIVE 1
514#line 524 "sqlscanner.cpp"
520#ifndef YY_SKIP_YYWRAP
522extern "C" int yywrap YY_PROTO(( void ));
524extern int yywrap YY_PROTO(( void ));
529static void yyunput YY_PROTO(( int c, char *buf_ptr ));
533static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
537static int yy_flex_strlen YY_PROTO(( yyconst char * ));
542static int yyinput YY_PROTO(( void ));
544static int input YY_PROTO(( void ));
549static int yy_start_stack_ptr = 0;
550static int yy_start_stack_depth = 0;
551static int *yy_start_stack = 0;
552#ifndef YY_NO_PUSH_STATE
553static void yy_push_state YY_PROTO(( int new_state ));
555#ifndef YY_NO_POP_STATE
556static void yy_pop_state YY_PROTO(( void ));
558#ifndef YY_NO_TOP_STATE
559static int yy_top_state YY_PROTO(( void ));
563#define YY_NO_PUSH_STATE 1
564#define YY_NO_POP_STATE 1
565#define YY_NO_TOP_STATE 1
584#ifndef YY_READ_BUF_SIZE
585#define YY_READ_BUF_SIZE 8192
594#define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
601#define YY_INPUT(buf,result,max_size) \
602 if ( yy_current_buffer->yy_is_interactive ) \
605 for ( n = 0; n < max_size && \
606 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
609 buf[n++] = (char) c; \
610 if ( c == EOF && ferror( yyin ) ) \
611 YY_FATAL_ERROR( "input in flex scanner failed" ); \
617 while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
619 if( errno != EINTR) \
621 YY_FATAL_ERROR( "input in flex scanner failed" ); \
635#define yyterminate() return YY_NULL
639#ifndef YY_START_STACK_INCR
640#define YY_START_STACK_INCR 25
644#ifndef YY_FATAL_ERROR
645#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
652#define YY_DECL int yylex YY_PROTO(( void ))
658#ifndef YY_USER_ACTION
659#define YY_USER_ACTION
664#define YY_BREAK break;
667#define YY_RULE_SETUP \
672 yy_state_type yy_current_state;
676#line 58 "sqlscanner.l"
680#line 690 "sqlscanner.cpp"
699 if ( ! yy_current_buffer )
701 yy_create_buffer( yyin, YY_BUF_SIZE );
703 yy_load_buffer_state();
711 *yy_cp = yy_hold_char;
718 yy_current_state = yy_start;
722 YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
723 if ( yy_accept[yy_current_state] )
725 yy_last_accepting_state = yy_current_state;
726 yy_last_accepting_cpos = yy_cp;
728 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
730 yy_current_state = (int) yy_def[yy_current_state];
731 if ( yy_current_state >= 148 )
732 yy_c = yy_meta[( unsigned int) yy_c];
734 yy_current_state = yy_nxt[yy_base[yy_current_state] + ( unsigned int) yy_c];
737 while ( yy_base[yy_current_state] != 255 );
740 yy_act = yy_accept[yy_current_state];
743 yy_cp = yy_last_accepting_cpos;
744 yy_current_state = yy_last_accepting_state;
745 yy_act = yy_accept[yy_current_state];
758 *yy_cp = yy_hold_char;
759 yy_cp = yy_last_accepting_cpos;
760 yy_current_state = yy_last_accepting_state;
765#line 61 "sqlscanner.l"
773#line 66 "sqlscanner.l"
781#line 71 "sqlscanner.l"
789#line 76 "sqlscanner.l"
792 return LESS_OR_EQUAL;
797#line 81 "sqlscanner.l"
800 return GREATER_OR_EQUAL;
805#line 86 "sqlscanner.l"
813#line 91 "sqlscanner.l"
819 yylval.integerValue = TQString(yytext).toLongLong( &ok );
821 setError(i18n( "Invalid integer number"),i18n( "This integer number may be too large."));
825 return INTEGER_CONST;
830#line 105 "sqlscanner.l"
833 if (yytext[0]== '.') {
834 yylval.realValue.integer = 0;
837 yylval.realValue.integer = atoi(p);
839 while (p && i < yyleng && *p != '.') {
843 if (i==0 || !p || *p!= '.') {
844 yylval.realValue.fractional = 0;
850 yylval.realValue.fractional = atoi(p);
856#line 128 "sqlscanner.l"
864#line 133 "sqlscanner.l"
872#line 138 "sqlscanner.l"
880#line 143 "sqlscanner.l"
888#line 148 "sqlscanner.l"
896#line 153 "sqlscanner.l"
904#line 158 "sqlscanner.l"
912#line 163 "sqlscanner.l"
920#line 168 "sqlscanner.l"
923 return NOT_SIMILAR_TO;
928#line 173 "sqlscanner.l"
936#line 178 "sqlscanner.l"
939 return SQL_IS_NOT_NULL;
944#line 183 "sqlscanner.l"
952#line 188 "sqlscanner.l"
960#line 193 "sqlscanner.l"
968#line 198 "sqlscanner.l"
976#line 203 "sqlscanner.l"
984#line 208 "sqlscanner.l"
992#line 213 "sqlscanner.l"
995 return CONCATENATION;
1000#line 218 "sqlscanner.l"
1003 return BITWISE_SHIFT_LEFT;
1008#line 223 "sqlscanner.l"
1011 return BITWISE_SHIFT_RIGHT;
1016#line 228 "sqlscanner.l"
1024#line 233 "sqlscanner.l"
1032#line 238 "sqlscanner.l"
1040#line 243 "sqlscanner.l"
1048#line 248 "sqlscanner.l"
1056#line 253 "sqlscanner.l"
1064#line 258 "sqlscanner.l"
1072#line 263 "sqlscanner.l"
1080#line 268 "sqlscanner.l"
1088#line 273 "sqlscanner.l"
1091 yylval.stringValue = new TQString(TQString::fromUtf8(yytext+1, yyleng-2));
1092 return CHARACTER_STRING_LITERAL;
1099#line 281 "sqlscanner.l"
1101 KexiDBDbg << "yytext: '" << yytext << "' (" << yyleng << ")" << endl;
1103 yylval.stringValue = new TQString(TQString::fromUtf8(yytext, yyleng));
1104 if (yytext[0]>= '0' && yytext[0]<= '9') {
1105 setError(i18n( "Invalid identifier"),
1106 i18n( "Identifiers should start with a letter or '_' character"));
1114#line 293 "sqlscanner.l"
1116 KexiDBDbg << "yytext: '" << yytext << "' (" << yyleng << ")" << endl;
1118 yylval.stringValue = new TQString(TQString::fromUtf8(yytext+1, yyleng-2));
1119 return QUERY_PARAMETER;
1124#line 300 "sqlscanner.l"
1131#line 304 "sqlscanner.l"
1133 KexiDBDbg << "char: '" << yytext[0] << "'" << endl;
1140#line 310 "sqlscanner.l"
1143#line 1153 "sqlscanner.cpp"
1144case YY_STATE_EOF(INITIAL):
1147 case YY_END_OF_BUFFER:
1150 int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
1153 *yy_cp = yy_hold_char;
1154 YY_RESTORE_YY_MORE_OFFSET
1156 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
1167 yy_n_chars = yy_current_buffer->yy_n_chars;
1168 yy_current_buffer->yy_input_file = yyin;
1169 yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
1179 if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
1181 yy_state_type yy_next_state;
1183 yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
1185 yy_current_state = yy_get_previous_state();
1196 yy_next_state = yy_try_NUL_trans( yy_current_state );
1198 yy_bp = yytext_ptr + YY_MORE_ADJ;
1200 if ( yy_next_state )
1203 yy_cp = ++yy_c_buf_p;
1204 yy_current_state = yy_next_state;
1211 goto yy_find_action;
1215 else switch ( yy_get_next_buffer() )
1217 case EOB_ACT_END_OF_FILE:
1219 yy_did_buffer_switch_on_eof = 0;
1232 yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
1234 yy_act = YY_STATE_EOF(YY_START);
1240 if ( ! yy_did_buffer_switch_on_eof )
1246 case EOB_ACT_CONTINUE_SCAN:
1248 yytext_ptr + yy_amount_of_matched_text;
1250 yy_current_state = yy_get_previous_state();
1253 yy_bp = yytext_ptr + YY_MORE_ADJ;
1256 case EOB_ACT_LAST_MATCH:
1258 &yy_current_buffer->yy_ch_buf[yy_n_chars];
1260 yy_current_state = yy_get_previous_state();
1263 yy_bp = yytext_ptr + YY_MORE_ADJ;
1264 goto yy_find_action;
1271 "fatal flex scanner internal error--no action found" );
1285static int yy_get_next_buffer()
1287 char *dest = yy_current_buffer->yy_ch_buf;
1288 char *source = yytext_ptr;
1289 int number_to_move, i;
1292 if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
1294 "fatal flex scanner internal error--end of buffer missed" );
1296 if ( yy_current_buffer->yy_fill_buffer == 0 )
1298 if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
1303 return EOB_ACT_END_OF_FILE;
1311 return EOB_ACT_LAST_MATCH;
1318 number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
1320 for ( i = 0; i < number_to_move; ++i )
1321 *(dest++) = *(source++);
1323 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
1327 yy_current_buffer->yy_n_chars = yy_n_chars = 0;
1332 yy_current_buffer->yy_buf_size - number_to_move - 1;
1334 while ( num_to_read <= 0 )
1336#ifdef YY_USES_REJECT
1338"input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
1342 YY_BUFFER_STATE b = yy_current_buffer;
1344 int yy_c_buf_p_offset =
1345 (int) (yy_c_buf_p - b->yy_ch_buf);
1347 if ( b->yy_is_our_buffer )
1349 int new_size = b->yy_buf_size * 2;
1351 if ( new_size <= 0 )
1352 b->yy_buf_size += b->yy_buf_size / 8;
1354 b->yy_buf_size *= 2;
1356 b->yy_ch_buf = ( char *)
1358 yy_flex_realloc( ( void *) b->yy_ch_buf,
1359 b->yy_buf_size + 2 );
1365 if ( ! b->yy_ch_buf )
1367 "fatal error - scanner input buffer overflow" );
1369 yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
1371 num_to_read = yy_current_buffer->yy_buf_size -
1376 if ( num_to_read > YY_READ_BUF_SIZE )
1377 num_to_read = YY_READ_BUF_SIZE;
1380 YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
1381 yy_n_chars, num_to_read );
1383 yy_current_buffer->yy_n_chars = yy_n_chars;
1386 if ( yy_n_chars == 0 )
1388 if ( number_to_move == YY_MORE_ADJ )
1390 ret_val = EOB_ACT_END_OF_FILE;
1396 ret_val = EOB_ACT_LAST_MATCH;
1397 yy_current_buffer->yy_buffer_status =
1398 YY_BUFFER_EOF_PENDING;
1403 ret_val = EOB_ACT_CONTINUE_SCAN;
1405 yy_n_chars += number_to_move;
1406 yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
1407 yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
1409 yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
1417static yy_state_type yy_get_previous_state()
1419 yy_state_type yy_current_state;
1422 yy_current_state = yy_start;
1424 for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
1426 YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
1427 if ( yy_accept[yy_current_state] )
1429 yy_last_accepting_state = yy_current_state;
1430 yy_last_accepting_cpos = yy_cp;
1432 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1434 yy_current_state = (int) yy_def[yy_current_state];
1435 if ( yy_current_state >= 148 )
1436 yy_c = yy_meta[( unsigned int) yy_c];
1438 yy_current_state = yy_nxt[yy_base[yy_current_state] + ( unsigned int) yy_c];
1441 return yy_current_state;
1452static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
1454static yy_state_type yy_try_NUL_trans( yy_current_state )
1455yy_state_type yy_current_state;
1459 char *yy_cp = yy_c_buf_p;
1462 if ( yy_accept[yy_current_state] )
1464 yy_last_accepting_state = yy_current_state;
1465 yy_last_accepting_cpos = yy_cp;
1467 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1469 yy_current_state = (int) yy_def[yy_current_state];
1470 if ( yy_current_state >= 148 )
1471 yy_c = yy_meta[( unsigned int) yy_c];
1473 yy_current_state = yy_nxt[yy_base[yy_current_state] + ( unsigned int) yy_c];
1474 yy_is_jam = (yy_current_state == 147);
1476 return yy_is_jam ? 0 : yy_current_state;
1482static void yyunput( int c, char *yy_bp )
1484static void yyunput( c, yy_bp )
1489 char *yy_cp = yy_c_buf_p;
1492 *yy_cp = yy_hold_char;
1494 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
1497 int number_to_move = yy_n_chars + 2;
1498 char *dest = &yy_current_buffer->yy_ch_buf[
1499 yy_current_buffer->yy_buf_size + 2];
1501 &yy_current_buffer->yy_ch_buf[number_to_move];
1503 while ( source > yy_current_buffer->yy_ch_buf )
1504 *--dest = *--source;
1506 yy_cp += (int) (dest - source);
1507 yy_bp += (int) (dest - source);
1508 yy_current_buffer->yy_n_chars =
1509 yy_n_chars = yy_current_buffer->yy_buf_size;
1511 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
1512 YY_FATAL_ERROR( "flex scanner push-back overflow" );
1515 *--yy_cp = (char) c;
1519 yy_hold_char = *yy_cp;
1533 *yy_c_buf_p = yy_hold_char;
1535 if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
1541 if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
1547 int offset = yy_c_buf_p - yytext_ptr;
1550 switch ( yy_get_next_buffer() )
1552 case EOB_ACT_LAST_MATCH:
1568 case EOB_ACT_END_OF_FILE:
1573 if ( ! yy_did_buffer_switch_on_eof )
1582 case EOB_ACT_CONTINUE_SCAN:
1583 yy_c_buf_p = yytext_ptr + offset;
1589 c = *( unsigned char *) yy_c_buf_p;
1591 yy_hold_char = *++yy_c_buf_p;
1599void yyrestart( FILE *input_file )
1601void yyrestart( input_file )
1605 if ( ! yy_current_buffer )
1606 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
1608 yy_init_buffer( yy_current_buffer, input_file );
1609 yy_load_buffer_state();
1614void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
1616void yy_switch_to_buffer( new_buffer )
1617YY_BUFFER_STATE new_buffer;
1620 if ( yy_current_buffer == new_buffer )
1623 if ( yy_current_buffer )
1626 *yy_c_buf_p = yy_hold_char;
1627 yy_current_buffer->yy_buf_pos = yy_c_buf_p;
1628 yy_current_buffer->yy_n_chars = yy_n_chars;
1631 yy_current_buffer = new_buffer;
1632 yy_load_buffer_state();
1639 yy_did_buffer_switch_on_eof = 1;
1644void yy_load_buffer_state( void )
1646void yy_load_buffer_state()
1649 yy_n_chars = yy_current_buffer->yy_n_chars;
1650 yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
1651 yyin = yy_current_buffer->yy_input_file;
1652 yy_hold_char = *yy_c_buf_p;
1657YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
1659YY_BUFFER_STATE yy_create_buffer( file, size )
1666 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
1668 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
1670 b->yy_buf_size = size;
1675 b->yy_ch_buf = ( char *) yy_flex_alloc( b->yy_buf_size + 2 );
1676 if ( ! b->yy_ch_buf )
1677 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
1679 b->yy_is_our_buffer = 1;
1681 yy_init_buffer( b, file );
1688void yy_delete_buffer( YY_BUFFER_STATE b )
1690void yy_delete_buffer( b )
1697 if ( b == yy_current_buffer )
1698 yy_current_buffer = (YY_BUFFER_STATE) 0;
1700 if ( b->yy_is_our_buffer )
1701 yy_flex_free( ( void *) b->yy_ch_buf );
1703 yy_flex_free( ( void *) b );
1710#ifndef YY_ALWAYS_INTERACTIVE
1711#ifndef YY_NEVER_INTERACTIVE
1712extern int isatty YY_PROTO(( int ));
1718void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
1720void yy_init_buffer( b, file )
1727 yy_flush_buffer( b );
1729 b->yy_input_file = file;
1730 b->yy_fill_buffer = 1;
1732#ifdef YY_ALWAYS_INTERACTIVE
1733 b->yy_is_interactive = 1;
1735#ifdef YY_NEVER_INTERACTIVE
1736 b->yy_is_interactive = 0;
1738 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
1745void yy_flush_buffer( YY_BUFFER_STATE b )
1747void yy_flush_buffer( b )
1761 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
1762 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
1764 b->yy_buf_pos = &b->yy_ch_buf[0];
1767 b->yy_buffer_status = YY_BUFFER_NEW;
1769 if ( b == yy_current_buffer )
1770 yy_load_buffer_state();
1774#ifndef YY_NO_SCAN_BUFFER
1776YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
1778YY_BUFFER_STATE yy_scan_buffer( base, size )
1786 base[size-2] != YY_END_OF_BUFFER_CHAR ||
1787 base[size-1] != YY_END_OF_BUFFER_CHAR )
1791 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
1793 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
1795 b->yy_buf_size = size - 2;
1796 b->yy_buf_pos = b->yy_ch_buf = base;
1797 b->yy_is_our_buffer = 0;
1798 b->yy_input_file = 0;
1799 b->yy_n_chars = b->yy_buf_size;
1800 b->yy_is_interactive = 0;
1802 b->yy_fill_buffer = 0;
1803 b->yy_buffer_status = YY_BUFFER_NEW;
1805 yy_switch_to_buffer( b );
1812#ifndef YY_NO_SCAN_STRING
1814YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
1816YY_BUFFER_STATE yy_scan_string( yy_str )
1817yyconst char *yy_str;
1821 for ( len = 0; yy_str[len]; ++len )
1824 return yy_scan_bytes( yy_str, len );
1829#ifndef YY_NO_SCAN_BYTES
1831YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
1833YY_BUFFER_STATE yy_scan_bytes( bytes, len )
1845 buf = ( char *) yy_flex_alloc( n );
1847 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
1849 for ( i = 0; i < len; ++i )
1852 buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
1854 b = yy_scan_buffer( buf, n );
1856 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
1861 b->yy_is_our_buffer = 1;
1868#ifndef YY_NO_PUSH_STATE
1870static void yy_push_state( int new_state )
1872static void yy_push_state( new_state )
1876 if ( yy_start_stack_ptr >= yy_start_stack_depth )
1880 yy_start_stack_depth += YY_START_STACK_INCR;
1881 new_size = yy_start_stack_depth * sizeof( int );
1883 if ( ! yy_start_stack )
1884 yy_start_stack = ( int *) yy_flex_alloc( new_size );
1887 yy_start_stack = ( int *) yy_flex_realloc(
1888 ( void *) yy_start_stack, new_size );
1890 if ( ! yy_start_stack )
1892 "out of memory expanding start-condition stack" );
1895 yy_start_stack[yy_start_stack_ptr++] = YY_START;
1902#ifndef YY_NO_POP_STATE
1903static void yy_pop_state()
1905 if ( --yy_start_stack_ptr < 0 )
1906 YY_FATAL_ERROR( "start-condition stack underflow" );
1908 BEGIN(yy_start_stack[yy_start_stack_ptr]);
1913#ifndef YY_NO_TOP_STATE
1914static int yy_top_state()
1916 return yy_start_stack[yy_start_stack_ptr - 1];
1920#ifndef YY_EXIT_FAILURE
1921#define YY_EXIT_FAILURE 2
1925static void yy_fatal_error( yyconst char msg[] )
1927static void yy_fatal_error( msg )
1931 (void) fprintf( stderr, "%s\n", msg );
1932 exit( YY_EXIT_FAILURE );
1944 yytext[yyleng] = yy_hold_char; \
1945 yy_c_buf_p = yytext + n; \
1946 yy_hold_char = *yy_c_buf_p; \
1947 *yy_c_buf_p = '\0'; \
1957static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
1959static void yy_flex_strncpy( s1, s2, n )
1966 for ( i = 0; i < n; ++i )
1971#ifdef YY_NEED_STRLEN
1973static int yy_flex_strlen( yyconst char *s )
1975static int yy_flex_strlen( s )
1980 for ( n = 0; s[n]; ++n )
1989static void *yy_flex_alloc( yy_size_t size )
1991static void *yy_flex_alloc( size )
1995 return ( void *) malloc( size );
1999static void *yy_flex_realloc( void *ptr, yy_size_t size )
2001static void *yy_flex_realloc( ptr, size )
2013 return ( void *) realloc( ( char *) ptr, size );
2017static void yy_flex_free( void *ptr )
2019static void yy_flex_free( ptr )
2033#line 310 "sqlscanner.l"
2036void tokenize( const char *data)
2038 yy_switch_to_buffer(yy_scan_string(data));
|