00001 #line 2 "data-lexer.cpp"
00002
00003 #line 4 "data-lexer.cpp"
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 35
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
00036
00037
00038
00039 #ifndef __STDC_LIMIT_MACROS
00040 #define __STDC_LIMIT_MACROS 1
00041 #endif
00042
00043 #include <inttypes.h>
00044 typedef int8_t flex_int8_t;
00045 typedef uint8_t flex_uint8_t;
00046 typedef int16_t flex_int16_t;
00047 typedef uint16_t flex_uint16_t;
00048 typedef int32_t flex_int32_t;
00049 typedef uint32_t flex_uint32_t;
00050 #else
00051 typedef signed char flex_int8_t;
00052 typedef short int flex_int16_t;
00053 typedef int flex_int32_t;
00054 typedef unsigned char flex_uint8_t;
00055 typedef unsigned short int flex_uint16_t;
00056 typedef unsigned int flex_uint32_t;
00057
00058
00059 #ifndef INT8_MIN
00060 #define INT8_MIN (-128)
00061 #endif
00062 #ifndef INT16_MIN
00063 #define INT16_MIN (-32767-1)
00064 #endif
00065 #ifndef INT32_MIN
00066 #define INT32_MIN (-2147483647-1)
00067 #endif
00068 #ifndef INT8_MAX
00069 #define INT8_MAX (127)
00070 #endif
00071 #ifndef INT16_MAX
00072 #define INT16_MAX (32767)
00073 #endif
00074 #ifndef INT32_MAX
00075 #define INT32_MAX (2147483647)
00076 #endif
00077 #ifndef UINT8_MAX
00078 #define UINT8_MAX (255U)
00079 #endif
00080 #ifndef UINT16_MAX
00081 #define UINT16_MAX (65535U)
00082 #endif
00083 #ifndef UINT32_MAX
00084 #define UINT32_MAX (4294967295U)
00085 #endif
00086
00087 #endif
00088
00089 #endif
00090
00091 #ifdef __cplusplus
00092
00093
00094 #define YY_USE_CONST
00095
00096 #else
00097
00098
00099 #if defined (__STDC__)
00100
00101 #define YY_USE_CONST
00102
00103 #endif
00104 #endif
00105
00106 #ifdef YY_USE_CONST
00107 #define yyconst const
00108 #else
00109 #define yyconst
00110 #endif
00111
00112
00113 #define YY_NULL 0
00114
00115
00116
00117
00118
00119
00120 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
00121
00122
00123
00124
00125
00126 #define BEGIN (yy_start) = 1 + 2 *
00127
00128
00129
00130
00131
00132 #define YY_START (((yy_start) - 1) / 2)
00133 #define YYSTATE YY_START
00134
00135
00136 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
00137
00138
00139 #define YY_NEW_FILE yyrestart(yyin )
00140
00141 #define YY_END_OF_BUFFER_CHAR 0
00142
00143
00144 #ifndef YY_BUF_SIZE
00145 #ifdef __ia64__
00146
00147
00148
00149
00150 #define YY_BUF_SIZE 32768
00151 #else
00152 #define YY_BUF_SIZE 16384
00153 #endif
00154 #endif
00155
00156
00157
00158 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
00159
00160 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
00161 #define YY_TYPEDEF_YY_BUFFER_STATE
00162 typedef struct yy_buffer_state *YY_BUFFER_STATE;
00163 #endif
00164
00165 extern int yyleng;
00166
00167 extern FILE *yyin, *yyout;
00168
00169 #define EOB_ACT_CONTINUE_SCAN 0
00170 #define EOB_ACT_END_OF_FILE 1
00171 #define EOB_ACT_LAST_MATCH 2
00172
00173 #define YY_LESS_LINENO(n)
00174
00175
00176 #define yyless(n) \
00177 do \
00178 { \
00179 \
00180 int yyless_macro_arg = (n); \
00181 YY_LESS_LINENO(yyless_macro_arg);\
00182 *yy_cp = (yy_hold_char); \
00183 YY_RESTORE_YY_MORE_OFFSET \
00184 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
00185 YY_DO_BEFORE_ACTION; \
00186 } \
00187 while ( 0 )
00188
00189 #define unput(c) yyunput( c, (yytext_ptr) )
00190
00191 #ifndef YY_TYPEDEF_YY_SIZE_T
00192 #define YY_TYPEDEF_YY_SIZE_T
00193 typedef size_t yy_size_t;
00194 #endif
00195
00196 #ifndef YY_STRUCT_YY_BUFFER_STATE
00197 #define YY_STRUCT_YY_BUFFER_STATE
00198 struct yy_buffer_state
00199 {
00200 FILE *yy_input_file;
00201
00202 char *yy_ch_buf;
00203 char *yy_buf_pos;
00204
00205
00206
00207
00208 yy_size_t yy_buf_size;
00209
00210
00211
00212
00213 int yy_n_chars;
00214
00215
00216
00217
00218
00219 int yy_is_our_buffer;
00220
00221
00222
00223
00224
00225
00226 int yy_is_interactive;
00227
00228
00229
00230
00231
00232 int yy_at_bol;
00233
00234 int yy_bs_lineno;
00235 int yy_bs_column;
00237
00238
00239
00240 int yy_fill_buffer;
00241
00242 int yy_buffer_status;
00243
00244 #define YY_BUFFER_NEW 0
00245 #define YY_BUFFER_NORMAL 1
00246
00247
00248
00249
00250
00251
00252
00253
00254
00255
00256 #define YY_BUFFER_EOF_PENDING 2
00257
00258 };
00259 #endif
00260
00261
00262 static size_t yy_buffer_stack_top = 0;
00263 static size_t yy_buffer_stack_max = 0;
00264 static YY_BUFFER_STATE * yy_buffer_stack = 0;
00266
00267
00268
00269
00270
00271
00272 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
00273 ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
00274 : NULL)
00275
00276
00277
00278
00279 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
00280
00281
00282 static char yy_hold_char;
00283 static int yy_n_chars;
00284 int yyleng;
00285
00286
00287 static char *yy_c_buf_p = (char *) 0;
00288 static int yy_init = 0;
00289 static int yy_start = 0;
00290
00291
00292
00293
00294 static int yy_did_buffer_switch_on_eof;
00295
00296 void yyrestart (FILE *input_file );
00297 void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer );
00298 YY_BUFFER_STATE yy_create_buffer (FILE *file,int size );
00299 void yy_delete_buffer (YY_BUFFER_STATE b );
00300 void yy_flush_buffer (YY_BUFFER_STATE b );
00301 void yypush_buffer_state (YY_BUFFER_STATE new_buffer );
00302 void yypop_buffer_state (void );
00303
00304 static void yyensure_buffer_stack (void );
00305 static void yy_load_buffer_state (void );
00306 static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file );
00307
00308 #define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
00309
00310 YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size );
00311 YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str );
00312 YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len );
00313
00314 void *yyalloc (yy_size_t );
00315 void *yyrealloc (void *,yy_size_t );
00316 void yyfree (void * );
00317
00318 #define yy_new_buffer yy_create_buffer
00319
00320 #define yy_set_interactive(is_interactive) \
00321 { \
00322 if ( ! YY_CURRENT_BUFFER ){ \
00323 yyensure_buffer_stack (); \
00324 YY_CURRENT_BUFFER_LVALUE = \
00325 yy_create_buffer(yyin,YY_BUF_SIZE ); \
00326 } \
00327 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
00328 }
00329
00330 #define yy_set_bol(at_bol) \
00331 { \
00332 if ( ! YY_CURRENT_BUFFER ){\
00333 yyensure_buffer_stack (); \
00334 YY_CURRENT_BUFFER_LVALUE = \
00335 yy_create_buffer(yyin,YY_BUF_SIZE ); \
00336 } \
00337 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
00338 }
00339
00340 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
00341
00342
00343
00344 typedef unsigned char YY_CHAR;
00345
00346 FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
00347
00348 typedef int yy_state_type;
00349
00350 extern int yylineno;
00351
00352 int yylineno = 1;
00353
00354 extern char *yytext;
00355 #define yytext_ptr yytext
00356
00357 static yy_state_type yy_get_previous_state (void );
00358 static yy_state_type yy_try_NUL_trans (yy_state_type current_state );
00359 static int yy_get_next_buffer (void );
00360 static void yy_fatal_error (yyconst char msg[] );
00361
00362
00363
00364
00365 #define YY_DO_BEFORE_ACTION \
00366 (yytext_ptr) = yy_bp; \
00367 yyleng = (size_t) (yy_cp - yy_bp); \
00368 (yy_hold_char) = *yy_cp; \
00369 *yy_cp = '\0'; \
00370 (yy_c_buf_p) = yy_cp;
00371
00372 #define YY_NUM_RULES 29
00373 #define YY_END_OF_BUFFER 30
00374
00375
00376 struct yy_trans_info
00377 {
00378 flex_int32_t yy_verify;
00379 flex_int32_t yy_nxt;
00380 };
00381 static yyconst flex_int16_t yy_accept[41] =
00382 { 0,
00383 0, 0, 30, 29, 1, 9, 29, 10, 19, 4,
00384 7, 8, 5, 6, 2, 3, 21, 10, 0, 19,
00385 25, 15, 11, 20, 27, 23, 0, 26, 17, 13,
00386 22, 28, 24, 0, 0, 16, 12, 18, 14, 0
00387 } ;
00388
00389 static yyconst flex_int32_t yy_ec[256] =
00390 { 0,
00391 1, 1, 1, 1, 1, 1, 1, 1, 2, 2,
00392 1, 2, 2, 1, 1, 1, 1, 1, 1, 1,
00393 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00394 1, 2, 1, 1, 1, 1, 1, 1, 3, 2,
00395 2, 1, 4, 1, 4, 5, 6, 7, 7, 7,
00396 7, 7, 7, 7, 7, 7, 7, 8, 1, 9,
00397 1, 10, 1, 1, 6, 6, 6, 6, 6, 6,
00398 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
00399 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
00400 11, 1, 12, 1, 6, 1, 6, 13, 6, 6,
00401
00402 6, 14, 15, 6, 16, 6, 6, 17, 6, 6,
00403 6, 6, 6, 6, 6, 6, 6, 6, 18, 6,
00404 6, 6, 19, 1, 20, 1, 1, 1, 1, 1,
00405 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00406 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00407 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00408 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00409 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00410 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00411 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00412
00413 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00414 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00415 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00416 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00417 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00418 1, 1, 1, 1, 1
00419 } ;
00420
00421 static yyconst flex_int32_t yy_meta[21] =
00422 { 0,
00423 1, 1, 1, 1, 2, 2, 2, 1, 1, 1,
00424 1, 1, 2, 2, 2, 2, 2, 2, 1, 1
00425 } ;
00426
00427 static yyconst flex_int16_t yy_base[42] =
00428 { 0,
00429 0, 0, 27, 60, 60, 60, 19, 0, 16, 60,
00430 60, 60, 60, 60, 60, 60, 30, 0, 18, 0,
00431 60, 60, 60, 60, 60, 60, 17, 60, 60, 60,
00432 60, 60, 60, 35, 44, 60, 60, 60, 60, 60,
00433 20
00434 } ;
00435
00436 static yyconst flex_int16_t yy_def[42] =
00437 { 0,
00438 40, 1, 40, 40, 40, 40, 40, 41, 40, 40,
00439 40, 40, 40, 40, 40, 40, 40, 41, 40, 9,
00440 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
00441 40, 40, 40, 40, 40, 40, 40, 40, 40, 0,
00442 40
00443 } ;
00444
00445 static yyconst flex_int16_t yy_nxt[81] =
00446 { 0,
00447 4, 5, 6, 7, 4, 8, 9, 10, 11, 12,
00448 13, 14, 8, 8, 8, 8, 8, 8, 15, 16,
00449 19, 18, 20, 35, 34, 17, 40, 40, 21, 22,
00450 23, 24, 25, 26, 27, 40, 17, 40, 40, 40,
00451 40, 34, 28, 29, 30, 31, 32, 33, 36, 37,
00452 35, 40, 40, 40, 40, 40, 40, 38, 39, 3,
00453 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
00454 40, 40, 40, 40, 40, 40, 40, 40, 40, 40
00455 } ;
00456
00457 static yyconst flex_int16_t yy_chk[81] =
00458 { 0,
00459 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00460 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00461 9, 41, 9, 27, 19, 7, 3, 0, 9, 9,
00462 9, 9, 9, 9, 17, 0, 17, 0, 0, 0,
00463 0, 34, 17, 17, 17, 17, 17, 17, 34, 34,
00464 35, 0, 0, 0, 0, 0, 0, 35, 35, 40,
00465 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
00466 40, 40, 40, 40, 40, 40, 40, 40, 40, 40
00467 } ;
00468
00469 static yy_state_type yy_last_accepting_state;
00470 static char *yy_last_accepting_cpos;
00471
00472 extern int yy_flex_debug;
00473 int yy_flex_debug = 0;
00474
00475
00476
00477
00478 #define REJECT reject_used_but_not_detected
00479 #define yymore() yymore_used_but_not_detected
00480 #define YY_MORE_ADJ 0
00481 #define YY_RESTORE_YY_MORE_OFFSET
00482 char *yytext;
00483 #line 1 "data-lexer.l"
00484 #line 2 "data-lexer.l"
00485 #include <string.h>
00486 #include <stdlib.h>
00487 #include <ctype.h>
00488 #include <assert.h>
00489 #include "data.h"
00490 #define YYSTYPE Data
00491 #include "data-syntax.h"
00492 #include "symbol.h"
00493 #include "data-string.h"
00494 #include "numbers.h"
00495
00502 #ifdef PRINT_TOKENS
00503 #define PRINT_TOKEN(T) printf(T"%s\n",yytext);
00504 #else
00505 #define PRINT_TOKEN(T)
00506 #endif
00507
00508 static void read_string();
00509 extern void yyerror(const char* text);
00510 #line 511 "data-lexer.cpp"
00511
00512 #define INITIAL 0
00513
00514 #ifndef YY_NO_UNISTD_H
00515
00516
00517
00518
00519 #include <unistd.h>
00520 #endif
00521
00522 #ifndef YY_EXTRA_TYPE
00523 #define YY_EXTRA_TYPE void *
00524 #endif
00525
00526 static int yy_init_globals (void );
00527
00528
00529
00530
00531 int yylex_destroy (void );
00532
00533 int yyget_debug (void );
00534
00535 void yyset_debug (int debug_flag );
00536
00537 YY_EXTRA_TYPE yyget_extra (void );
00538
00539 void yyset_extra (YY_EXTRA_TYPE user_defined );
00540
00541 FILE *yyget_in (void );
00542
00543 void yyset_in (FILE * in_str );
00544
00545 FILE *yyget_out (void );
00546
00547 void yyset_out (FILE * out_str );
00548
00549 int yyget_leng (void );
00550
00551 char *yyget_text (void );
00552
00553 int yyget_lineno (void );
00554
00555 void yyset_lineno (int line_number );
00556
00557
00558
00559
00560
00561 #ifndef YY_SKIP_YYWRAP
00562 #ifdef __cplusplus
00563 extern "C" int yywrap (void );
00564 #else
00565 extern int yywrap (void );
00566 #endif
00567 #endif
00568
00569 static void yyunput (int c,char *buf_ptr );
00570
00571 #ifndef yytext_ptr
00572 static void yy_flex_strncpy (char *,yyconst char *,int );
00573 #endif
00574
00575 #ifdef YY_NEED_STRLEN
00576 static int yy_flex_strlen (yyconst char * );
00577 #endif
00578
00579 #ifndef YY_NO_INPUT
00580
00581 #ifdef __cplusplus
00582 static int yyinput (void );
00583 #else
00584 static int input (void );
00585 #endif
00586
00587 #endif
00588
00589
00590 #ifndef YY_READ_BUF_SIZE
00591 #ifdef __ia64__
00592
00593 #define YY_READ_BUF_SIZE 16384
00594 #else
00595 #define YY_READ_BUF_SIZE 8192
00596 #endif
00597 #endif
00598
00599
00600 #ifndef ECHO
00601
00602
00603
00604 #define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
00605 #endif
00606
00607
00608
00609
00610 #ifndef YY_INPUT
00611 #define YY_INPUT(buf,result,max_size) \
00612 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
00613 { \
00614 int c = '*'; \
00615 size_t n; \
00616 for ( n = 0; n < max_size && \
00617 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
00618 buf[n] = (char) c; \
00619 if ( c == '\n' ) \
00620 buf[n++] = (char) c; \
00621 if ( c == EOF && ferror( yyin ) ) \
00622 YY_FATAL_ERROR( "input in flex scanner failed" ); \
00623 result = n; \
00624 } \
00625 else \
00626 { \
00627 errno=0; \
00628 while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
00629 { \
00630 if( errno != EINTR) \
00631 { \
00632 YY_FATAL_ERROR( "input in flex scanner failed" ); \
00633 break; \
00634 } \
00635 errno=0; \
00636 clearerr(yyin); \
00637 } \
00638 }\
00639 \
00640
00641 #endif
00642
00643
00644
00645
00646
00647 #ifndef yyterminate
00648 #define yyterminate() return YY_NULL
00649 #endif
00650
00651
00652 #ifndef YY_START_STACK_INCR
00653 #define YY_START_STACK_INCR 25
00654 #endif
00655
00656
00657 #ifndef YY_FATAL_ERROR
00658 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
00659 #endif
00660
00661
00662
00663
00664
00665
00666 #ifndef YY_DECL
00667 #define YY_DECL_IS_OURS 1
00668
00669 extern int yylex (void);
00670
00671 #define YY_DECL int yylex (void)
00672 #endif
00673
00674
00675
00676
00677 #ifndef YY_USER_ACTION
00678 #define YY_USER_ACTION
00679 #endif
00680
00681
00682 #ifndef YY_BREAK
00683 #define YY_BREAK break;
00684 #endif
00685
00686 #define YY_RULE_SETUP \
00687 YY_USER_ACTION
00688
00691 YY_DECL
00692 {
00693 register yy_state_type yy_current_state;
00694 register char *yy_cp, *yy_bp;
00695 register int yy_act;
00696
00697 #line 29 "data-lexer.l"
00698
00699
00700 #line 701 "data-lexer.cpp"
00701
00702 if ( !(yy_init) )
00703 {
00704 (yy_init) = 1;
00705
00706 #ifdef YY_USER_INIT
00707 YY_USER_INIT;
00708 #endif
00709
00710 if ( ! (yy_start) )
00711 (yy_start) = 1;
00712
00713 if ( ! yyin )
00714 yyin = stdin;
00715
00716 if ( ! yyout )
00717 yyout = stdout;
00718
00719 if ( ! YY_CURRENT_BUFFER ) {
00720 yyensure_buffer_stack ();
00721 YY_CURRENT_BUFFER_LVALUE =
00722 yy_create_buffer(yyin,YY_BUF_SIZE );
00723 }
00724
00725 yy_load_buffer_state( );
00726 }
00727
00728 while ( 1 )
00729 {
00730 yy_cp = (yy_c_buf_p);
00731
00732
00733 *yy_cp = (yy_hold_char);
00734
00735
00736
00737
00738 yy_bp = yy_cp;
00739
00740 yy_current_state = (yy_start);
00741 yy_match:
00742 do
00743 {
00744 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
00745 if ( yy_accept[yy_current_state] )
00746 {
00747 (yy_last_accepting_state) = yy_current_state;
00748 (yy_last_accepting_cpos) = yy_cp;
00749 }
00750 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
00751 {
00752 yy_current_state = (int) yy_def[yy_current_state];
00753 if ( yy_current_state >= 41 )
00754 yy_c = yy_meta[(unsigned int) yy_c];
00755 }
00756 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
00757 ++yy_cp;
00758 }
00759 while ( yy_base[yy_current_state] != 60 );
00760
00761 yy_find_action:
00762 yy_act = yy_accept[yy_current_state];
00763 if ( yy_act == 0 )
00764 {
00765 yy_cp = (yy_last_accepting_cpos);
00766 yy_current_state = (yy_last_accepting_state);
00767 yy_act = yy_accept[yy_current_state];
00768 }
00769
00770 YY_DO_BEFORE_ACTION;
00771
00772 do_action:
00773
00774 switch ( yy_act )
00775 {
00776 case 0:
00777
00778 *yy_cp = (yy_hold_char);
00779 yy_cp = (yy_last_accepting_cpos);
00780 yy_current_state = (yy_last_accepting_state);
00781 goto yy_find_action;
00782
00783 case 1:
00784
00785 YY_RULE_SETUP
00786 #line 31 "data-lexer.l"
00787 {}
00788 YY_BREAK
00789 case 2:
00790 YY_RULE_SETUP
00791 #line 33 "data-lexer.l"
00792 { return BRACE_OPEN; }
00793 YY_BREAK
00794 case 3:
00795 YY_RULE_SETUP
00796 #line 34 "data-lexer.l"
00797 { return BRACE_CLOSE; }
00798 YY_BREAK
00799 case 4:
00800 YY_RULE_SETUP
00801 #line 35 "data-lexer.l"
00802 { return COLON; }
00803 YY_BREAK
00804 case 5:
00805 YY_RULE_SETUP
00806 #line 36 "data-lexer.l"
00807 { return BRACKET_OPEN; }
00808 YY_BREAK
00809 case 6:
00810 YY_RULE_SETUP
00811 #line 37 "data-lexer.l"
00812 { return BRACKET_CLOSE; }
00813 YY_BREAK
00814 case 7:
00815 YY_RULE_SETUP
00816 #line 38 "data-lexer.l"
00817 { return DIMENSION_OPEN; }
00818 YY_BREAK
00819 case 8:
00820 YY_RULE_SETUP
00821 #line 39 "data-lexer.l"
00822 { return DIMENSION_CLOSE; }
00823 YY_BREAK
00824 case 9:
00825 YY_RULE_SETUP
00826 #line 40 "data-lexer.l"
00827 { read_string(); return STRING; }
00828 YY_BREAK
00829 case 10:
00830 YY_RULE_SETUP
00831 #line 42 "data-lexer.l"
00832 {
00833 yylval = Symbol(yytext);
00834 PRINT_TOKEN("Symbol");
00835 return SYMBOL;
00836 }
00837 YY_BREAK
00838 case 11:
00839 YY_RULE_SETUP
00840 #line 48 "data-lexer.l"
00841 {
00842 yylval = Float8(yytext);
00843 PRINT_TOKEN("Token f8");
00844 return NUMBER;
00845 }
00846 YY_BREAK
00847 case 12:
00848 YY_RULE_SETUP
00849 #line 53 "data-lexer.l"
00850 {
00851 yylval = Float8(yytext);
00852 PRINT_TOKEN("Token f8");
00853 return NUMBER;
00854 }
00855 YY_BREAK
00856 case 13:
00857 YY_RULE_SETUP
00858 #line 58 "data-lexer.l"
00859 {
00860 yylval = Float8(yytext);
00861 PRINT_TOKEN("Token f8");
00862 return NUMBER;
00863 }
00864 YY_BREAK
00865 case 14:
00866 YY_RULE_SETUP
00867 #line 63 "data-lexer.l"
00868 {
00869 yylval = Float8(yytext);
00870 PRINT_TOKEN("Token f8");
00871 return NUMBER;
00872 }
00873 YY_BREAK
00874 case 15:
00875 YY_RULE_SETUP
00876 #line 69 "data-lexer.l"
00877 {
00878 yylval = Float4(yytext);
00879 PRINT_TOKEN("Token f4");
00880 return NUMBER;
00881 }
00882 YY_BREAK
00883 case 16:
00884 YY_RULE_SETUP
00885 #line 74 "data-lexer.l"
00886 {
00887 yylval = Float4(yytext);
00888 PRINT_TOKEN("Token f4");
00889 return NUMBER;
00890 }
00891 YY_BREAK
00892 case 17:
00893 YY_RULE_SETUP
00894 #line 79 "data-lexer.l"
00895 {
00896 yylval = Float4(yytext);
00897 PRINT_TOKEN("Token f4");
00898 return NUMBER;
00899 }
00900 YY_BREAK
00901 case 18:
00902 YY_RULE_SETUP
00903 #line 84 "data-lexer.l"
00904 {
00905 yylval = Float4(yytext);
00906 PRINT_TOKEN("Token f4");
00907 return NUMBER;
00908 }
00909 YY_BREAK
00910 case 19:
00911 YY_RULE_SETUP
00912 #line 90 "data-lexer.l"
00913 {
00914 yylval = Unsigned4(yytext);
00915 PRINT_TOKEN("Token u4");
00916 return NUMBER;
00917 }
00918 YY_BREAK
00919 case 20:
00920 YY_RULE_SETUP
00921 #line 95 "data-lexer.l"
00922 {
00923 yylval = Unsigned4(yytext);
00924 PRINT_TOKEN("Token u4");
00925 return NUMBER;
00926 }
00927 YY_BREAK
00928 case 21:
00929 YY_RULE_SETUP
00930 #line 100 "data-lexer.l"
00931 {
00932 yylval = Signed4(yytext);
00933 PRINT_TOKEN("Token s4");
00934 return NUMBER;
00935 }
00936 YY_BREAK
00937 case 22:
00938 YY_RULE_SETUP
00939 #line 105 "data-lexer.l"
00940 {
00941 yylval = Signed4(yytext);
00942 PRINT_TOKEN("Token s4");
00943 return NUMBER;
00944 }
00945 YY_BREAK
00946 case 23:
00947 YY_RULE_SETUP
00948 #line 110 "data-lexer.l"
00949 {
00950 yylval = Unsigned2(yytext);
00951 return NUMBER;
00952 }
00953 YY_BREAK
00954 case 24:
00955 YY_RULE_SETUP
00956 #line 114 "data-lexer.l"
00957 {
00958 yylval = Signed2(yytext);
00959 return NUMBER;
00960 }
00961 YY_BREAK
00962 case 25:
00963 YY_RULE_SETUP
00964 #line 118 "data-lexer.l"
00965 {
00966 yylval = Unsigned1(yytext);
00967 return NUMBER;
00968 }
00969 YY_BREAK
00970 case 26:
00971 YY_RULE_SETUP
00972 #line 122 "data-lexer.l"
00973 {
00974 yylval = Signed1(yytext);
00975 return NUMBER;
00976 }
00977 YY_BREAK
00978 case 27:
00979 YY_RULE_SETUP
00980 #line 126 "data-lexer.l"
00981 {
00982 yylval = Unsigned8(yytext);
00983 return NUMBER;
00984 }
00985 YY_BREAK
00986 case 28:
00987 YY_RULE_SETUP
00988 #line 130 "data-lexer.l"
00989 {
00990 yylval = Signed8(yytext);
00991 return NUMBER;
00992 }
00993 YY_BREAK
00994 case 29:
00995 YY_RULE_SETUP
00996 #line 135 "data-lexer.l"
00997 ECHO;
00998 YY_BREAK
00999 #line 1000 "data-lexer.cpp"
01000 case YY_STATE_EOF(INITIAL):
01001 yyterminate();
01002
01003 case YY_END_OF_BUFFER:
01004 {
01005
01006 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
01007
01008
01009 *yy_cp = (yy_hold_char);
01010 YY_RESTORE_YY_MORE_OFFSET
01011
01012 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
01013 {
01014
01015
01016
01017
01018
01019
01020
01021
01022
01023 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
01024 YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
01025 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
01026 }
01027
01028
01029
01030
01031
01032
01033
01034
01035 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
01036 {
01037 yy_state_type yy_next_state;
01038
01039 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
01040
01041 yy_current_state = yy_get_previous_state( );
01042
01043
01044
01045
01046
01047
01048
01049
01050
01051
01052 yy_next_state = yy_try_NUL_trans( yy_current_state );
01053
01054 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
01055
01056 if ( yy_next_state )
01057 {
01058
01059 yy_cp = ++(yy_c_buf_p);
01060 yy_current_state = yy_next_state;
01061 goto yy_match;
01062 }
01063
01064 else
01065 {
01066 yy_cp = (yy_c_buf_p);
01067 goto yy_find_action;
01068 }
01069 }
01070
01071 else switch ( yy_get_next_buffer( ) )
01072 {
01073 case EOB_ACT_END_OF_FILE:
01074 {
01075 (yy_did_buffer_switch_on_eof) = 0;
01076
01077 if ( yywrap( ) )
01078 {
01079
01080
01081
01082
01083
01084
01085
01086
01087
01088 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
01089
01090 yy_act = YY_STATE_EOF(YY_START);
01091 goto do_action;
01092 }
01093
01094 else
01095 {
01096 if ( ! (yy_did_buffer_switch_on_eof) )
01097 YY_NEW_FILE;
01098 }
01099 break;
01100 }
01101
01102 case EOB_ACT_CONTINUE_SCAN:
01103 (yy_c_buf_p) =
01104 (yytext_ptr) + yy_amount_of_matched_text;
01105
01106 yy_current_state = yy_get_previous_state( );
01107
01108 yy_cp = (yy_c_buf_p);
01109 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
01110 goto yy_match;
01111
01112 case EOB_ACT_LAST_MATCH:
01113 (yy_c_buf_p) =
01114 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
01115
01116 yy_current_state = yy_get_previous_state( );
01117
01118 yy_cp = (yy_c_buf_p);
01119 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
01120 goto yy_find_action;
01121 }
01122 break;
01123 }
01124
01125 default:
01126 YY_FATAL_ERROR(
01127 "fatal flex scanner internal error--no action found" );
01128 }
01129 }
01130 }
01131
01132
01133
01134
01135
01136
01137
01138
01139 static int yy_get_next_buffer (void)
01140 {
01141 register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
01142 register char *source = (yytext_ptr);
01143 register int number_to_move, i;
01144 int ret_val;
01145
01146 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
01147 YY_FATAL_ERROR(
01148 "fatal flex scanner internal error--end of buffer missed" );
01149
01150 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
01151 {
01152 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
01153 {
01154
01155
01156
01157 return EOB_ACT_END_OF_FILE;
01158 }
01159
01160 else
01161 {
01162
01163
01164
01165 return EOB_ACT_LAST_MATCH;
01166 }
01167 }
01168
01169
01170
01171
01172 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
01173
01174 for ( i = 0; i < number_to_move; ++i )
01175 *(dest++) = *(source++);
01176
01177 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
01178
01179
01180
01181 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
01182
01183 else
01184 {
01185 int num_to_read =
01186 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
01187
01188 while ( num_to_read <= 0 )
01189 {
01190
01191
01192 YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
01193
01194 int yy_c_buf_p_offset =
01195 (int) ((yy_c_buf_p) - b->yy_ch_buf);
01196
01197 if ( b->yy_is_our_buffer )
01198 {
01199 int new_size = b->yy_buf_size * 2;
01200
01201 if ( new_size <= 0 )
01202 b->yy_buf_size += b->yy_buf_size / 8;
01203 else
01204 b->yy_buf_size *= 2;
01205
01206 b->yy_ch_buf = (char *)
01207
01208 yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
01209 }
01210 else
01211
01212 b->yy_ch_buf = 0;
01213
01214 if ( ! b->yy_ch_buf )
01215 YY_FATAL_ERROR(
01216 "fatal error - scanner input buffer overflow" );
01217
01218 (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
01219
01220 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
01221 number_to_move - 1;
01222
01223 }
01224
01225 if ( num_to_read > YY_READ_BUF_SIZE )
01226 num_to_read = YY_READ_BUF_SIZE;
01227
01228
01229 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
01230 (yy_n_chars), (size_t) num_to_read );
01231
01232 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
01233 }
01234
01235 if ( (yy_n_chars) == 0 )
01236 {
01237 if ( number_to_move == YY_MORE_ADJ )
01238 {
01239 ret_val = EOB_ACT_END_OF_FILE;
01240 yyrestart(yyin );
01241 }
01242
01243 else
01244 {
01245 ret_val = EOB_ACT_LAST_MATCH;
01246 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
01247 YY_BUFFER_EOF_PENDING;
01248 }
01249 }
01250
01251 else
01252 ret_val = EOB_ACT_CONTINUE_SCAN;
01253
01254 if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
01255
01256 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
01257 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size );
01258 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
01259 YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
01260 }
01261
01262 (yy_n_chars) += number_to_move;
01263 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
01264 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
01265
01266 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
01267
01268 return ret_val;
01269 }
01270
01271
01272
01273 static yy_state_type yy_get_previous_state (void)
01274 {
01275 register yy_state_type yy_current_state;
01276 register char *yy_cp;
01277
01278 yy_current_state = (yy_start);
01279
01280 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
01281 {
01282 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
01283 if ( yy_accept[yy_current_state] )
01284 {
01285 (yy_last_accepting_state) = yy_current_state;
01286 (yy_last_accepting_cpos) = yy_cp;
01287 }
01288 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
01289 {
01290 yy_current_state = (int) yy_def[yy_current_state];
01291 if ( yy_current_state >= 41 )
01292 yy_c = yy_meta[(unsigned int) yy_c];
01293 }
01294 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
01295 }
01296
01297 return yy_current_state;
01298 }
01299
01300
01301
01302
01303
01304
01305 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
01306 {
01307 register int yy_is_jam;
01308 register char *yy_cp = (yy_c_buf_p);
01309
01310 register YY_CHAR yy_c = 1;
01311 if ( yy_accept[yy_current_state] )
01312 {
01313 (yy_last_accepting_state) = yy_current_state;
01314 (yy_last_accepting_cpos) = yy_cp;
01315 }
01316 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
01317 {
01318 yy_current_state = (int) yy_def[yy_current_state];
01319 if ( yy_current_state >= 41 )
01320 yy_c = yy_meta[(unsigned int) yy_c];
01321 }
01322 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
01323 yy_is_jam = (yy_current_state == 40);
01324
01325 return yy_is_jam ? 0 : yy_current_state;
01326 }
01327
01328 static void yyunput (int c, register char * yy_bp )
01329 {
01330 register char *yy_cp;
01331
01332 yy_cp = (yy_c_buf_p);
01333
01334
01335 *yy_cp = (yy_hold_char);
01336
01337 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
01338 {
01339
01340 register int number_to_move = (yy_n_chars) + 2;
01341 register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
01342 YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
01343 register char *source =
01344 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
01345
01346 while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
01347 *--dest = *--source;
01348
01349 yy_cp += (int) (dest - source);
01350 yy_bp += (int) (dest - source);
01351 YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
01352 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
01353
01354 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
01355 YY_FATAL_ERROR( "flex scanner push-back overflow" );
01356 }
01357
01358 *--yy_cp = (char) c;
01359
01360 (yytext_ptr) = yy_bp;
01361 (yy_hold_char) = *yy_cp;
01362 (yy_c_buf_p) = yy_cp;
01363 }
01364
01365 #ifndef YY_NO_INPUT
01366 #ifdef __cplusplus
01367 static int yyinput (void)
01368 #else
01369 static int input (void)
01370 #endif
01371
01372 {
01373 int c;
01374
01375 *(yy_c_buf_p) = (yy_hold_char);
01376
01377 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
01378 {
01379
01380
01381
01382
01383 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
01384
01385 *(yy_c_buf_p) = '\0';
01386
01387 else
01388 {
01389 int offset = (yy_c_buf_p) - (yytext_ptr);
01390 ++(yy_c_buf_p);
01391
01392 switch ( yy_get_next_buffer( ) )
01393 {
01394 case EOB_ACT_LAST_MATCH:
01395
01396
01397
01398
01399
01400
01401
01402
01403
01404
01405
01406 yyrestart(yyin );
01407
01408
01409
01410 case EOB_ACT_END_OF_FILE:
01411 {
01412 if ( yywrap( ) )
01413 return EOF;
01414
01415 if ( ! (yy_did_buffer_switch_on_eof) )
01416 YY_NEW_FILE;
01417 #ifdef __cplusplus
01418 return yyinput();
01419 #else
01420 return input();
01421 #endif
01422 }
01423
01424 case EOB_ACT_CONTINUE_SCAN:
01425 (yy_c_buf_p) = (yytext_ptr) + offset;
01426 break;
01427 }
01428 }
01429 }
01430
01431 c = *(unsigned char *) (yy_c_buf_p);
01432 *(yy_c_buf_p) = '\0';
01433 (yy_hold_char) = *++(yy_c_buf_p);
01434
01435 return c;
01436 }
01437 #endif
01438
01444 void yyrestart (FILE * input_file )
01445 {
01446
01447 if ( ! YY_CURRENT_BUFFER ){
01448 yyensure_buffer_stack ();
01449 YY_CURRENT_BUFFER_LVALUE =
01450 yy_create_buffer(yyin,YY_BUF_SIZE );
01451 }
01452
01453 yy_init_buffer(YY_CURRENT_BUFFER,input_file );
01454 yy_load_buffer_state( );
01455 }
01456
01461 void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer )
01462 {
01463
01464
01465
01466
01467
01468
01469 yyensure_buffer_stack ();
01470 if ( YY_CURRENT_BUFFER == new_buffer )
01471 return;
01472
01473 if ( YY_CURRENT_BUFFER )
01474 {
01475
01476 *(yy_c_buf_p) = (yy_hold_char);
01477 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
01478 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
01479 }
01480
01481 YY_CURRENT_BUFFER_LVALUE = new_buffer;
01482 yy_load_buffer_state( );
01483
01484
01485
01486
01487
01488
01489 (yy_did_buffer_switch_on_eof) = 1;
01490 }
01491
01492 static void yy_load_buffer_state (void)
01493 {
01494 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
01495 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
01496 yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
01497 (yy_hold_char) = *(yy_c_buf_p);
01498 }
01499
01506 YY_BUFFER_STATE yy_create_buffer (FILE * file, int size )
01507 {
01508 YY_BUFFER_STATE b;
01509
01510 b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) );
01511 if ( ! b )
01512 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
01513
01514 b->yy_buf_size = size;
01515
01516
01517
01518
01519 b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2 );
01520 if ( ! b->yy_ch_buf )
01521 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
01522
01523 b->yy_is_our_buffer = 1;
01524
01525 yy_init_buffer(b,file );
01526
01527 return b;
01528 }
01529
01534 void yy_delete_buffer (YY_BUFFER_STATE b )
01535 {
01536
01537 if ( ! b )
01538 return;
01539
01540 if ( b == YY_CURRENT_BUFFER )
01541 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
01542
01543 if ( b->yy_is_our_buffer )
01544 yyfree((void *) b->yy_ch_buf );
01545
01546 yyfree((void *) b );
01547 }
01548
01549 #ifndef __cplusplus
01550 extern int isatty (int );
01551 #endif
01552
01553
01554
01555
01556
01557 static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file )
01558
01559 {
01560 int oerrno = errno;
01561
01562 yy_flush_buffer(b );
01563
01564 b->yy_input_file = file;
01565 b->yy_fill_buffer = 1;
01566
01567
01568
01569
01570
01571 if (b != YY_CURRENT_BUFFER){
01572 b->yy_bs_lineno = 1;
01573 b->yy_bs_column = 0;
01574 }
01575
01576 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
01577
01578 errno = oerrno;
01579 }
01580
01585 void yy_flush_buffer (YY_BUFFER_STATE b )
01586 {
01587 if ( ! b )
01588 return;
01589
01590 b->yy_n_chars = 0;
01591
01592
01593
01594
01595
01596 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
01597 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
01598
01599 b->yy_buf_pos = &b->yy_ch_buf[0];
01600
01601 b->yy_at_bol = 1;
01602 b->yy_buffer_status = YY_BUFFER_NEW;
01603
01604 if ( b == YY_CURRENT_BUFFER )
01605 yy_load_buffer_state( );
01606 }
01607
01614 void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
01615 {
01616 if (new_buffer == NULL)
01617 return;
01618
01619 yyensure_buffer_stack();
01620
01621
01622 if ( YY_CURRENT_BUFFER )
01623 {
01624
01625 *(yy_c_buf_p) = (yy_hold_char);
01626 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
01627 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
01628 }
01629
01630
01631 if (YY_CURRENT_BUFFER)
01632 (yy_buffer_stack_top)++;
01633 YY_CURRENT_BUFFER_LVALUE = new_buffer;
01634
01635
01636 yy_load_buffer_state( );
01637 (yy_did_buffer_switch_on_eof) = 1;
01638 }
01639
01644 void yypop_buffer_state (void)
01645 {
01646 if (!YY_CURRENT_BUFFER)
01647 return;
01648
01649 yy_delete_buffer(YY_CURRENT_BUFFER );
01650 YY_CURRENT_BUFFER_LVALUE = NULL;
01651 if ((yy_buffer_stack_top) > 0)
01652 --(yy_buffer_stack_top);
01653
01654 if (YY_CURRENT_BUFFER) {
01655 yy_load_buffer_state( );
01656 (yy_did_buffer_switch_on_eof) = 1;
01657 }
01658 }
01659
01660
01661
01662
01663 static void yyensure_buffer_stack (void)
01664 {
01665 int num_to_alloc;
01666
01667 if (!(yy_buffer_stack)) {
01668
01669
01670
01671
01672
01673 num_to_alloc = 1;
01674 (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
01675 (num_to_alloc * sizeof(struct yy_buffer_state*)
01676 );
01677 if ( ! (yy_buffer_stack) )
01678 YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
01679
01680 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
01681
01682 (yy_buffer_stack_max) = num_to_alloc;
01683 (yy_buffer_stack_top) = 0;
01684 return;
01685 }
01686
01687 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
01688
01689
01690 int grow_size = 8 ;
01691
01692 num_to_alloc = (yy_buffer_stack_max) + grow_size;
01693 (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
01694 ((yy_buffer_stack),
01695 num_to_alloc * sizeof(struct yy_buffer_state*)
01696 );
01697 if ( ! (yy_buffer_stack) )
01698 YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
01699
01700
01701 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
01702 (yy_buffer_stack_max) = num_to_alloc;
01703 }
01704 }
01705
01712 YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size )
01713 {
01714 YY_BUFFER_STATE b;
01715
01716 if ( size < 2 ||
01717 base[size-2] != YY_END_OF_BUFFER_CHAR ||
01718 base[size-1] != YY_END_OF_BUFFER_CHAR )
01719
01720 return 0;
01721
01722 b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) );
01723 if ( ! b )
01724 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
01725
01726 b->yy_buf_size = size - 2;
01727 b->yy_buf_pos = b->yy_ch_buf = base;
01728 b->yy_is_our_buffer = 0;
01729 b->yy_input_file = 0;
01730 b->yy_n_chars = b->yy_buf_size;
01731 b->yy_is_interactive = 0;
01732 b->yy_at_bol = 1;
01733 b->yy_fill_buffer = 0;
01734 b->yy_buffer_status = YY_BUFFER_NEW;
01735
01736 yy_switch_to_buffer(b );
01737
01738 return b;
01739 }
01740
01749 YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
01750 {
01751
01752 return yy_scan_bytes(yystr,strlen(yystr) );
01753 }
01754
01762 YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, int _yybytes_len )
01763 {
01764 YY_BUFFER_STATE b;
01765 char *buf;
01766 yy_size_t n;
01767 int i;
01768
01769
01770 n = _yybytes_len + 2;
01771 buf = (char *) yyalloc(n );
01772 if ( ! buf )
01773 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
01774
01775 for ( i = 0; i < _yybytes_len; ++i )
01776 buf[i] = yybytes[i];
01777
01778 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
01779
01780 b = yy_scan_buffer(buf,n );
01781 if ( ! b )
01782 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
01783
01784
01785
01786
01787 b->yy_is_our_buffer = 1;
01788
01789 return b;
01790 }
01791
01792 #ifndef YY_EXIT_FAILURE
01793 #define YY_EXIT_FAILURE 2
01794 #endif
01795
01796 static void yy_fatal_error (yyconst char* msg )
01797 {
01798 (void) fprintf( stderr, "%s\n", msg );
01799 exit( YY_EXIT_FAILURE );
01800 }
01801
01802
01803
01804 #undef yyless
01805 #define yyless(n) \
01806 do \
01807 { \
01808 \
01809 int yyless_macro_arg = (n); \
01810 YY_LESS_LINENO(yyless_macro_arg);\
01811 yytext[yyleng] = (yy_hold_char); \
01812 (yy_c_buf_p) = yytext + yyless_macro_arg; \
01813 (yy_hold_char) = *(yy_c_buf_p); \
01814 *(yy_c_buf_p) = '\0'; \
01815 yyleng = yyless_macro_arg; \
01816 } \
01817 while ( 0 )
01818
01819
01820
01824 int yyget_lineno (void)
01825 {
01826
01827 return yylineno;
01828 }
01829
01833 FILE *yyget_in (void)
01834 {
01835 return yyin;
01836 }
01837
01841 FILE *yyget_out (void)
01842 {
01843 return yyout;
01844 }
01845
01849 int yyget_leng (void)
01850 {
01851 return yyleng;
01852 }
01853
01858 char *yyget_text (void)
01859 {
01860 return yytext;
01861 }
01862
01867 void yyset_lineno (int line_number )
01868 {
01869
01870 yylineno = line_number;
01871 }
01872
01879 void yyset_in (FILE * in_str )
01880 {
01881 yyin = in_str ;
01882 }
01883
01884 void yyset_out (FILE * out_str )
01885 {
01886 yyout = out_str ;
01887 }
01888
01889 int yyget_debug (void)
01890 {
01891 return yy_flex_debug;
01892 }
01893
01894 void yyset_debug (int bdebug )
01895 {
01896 yy_flex_debug = bdebug ;
01897 }
01898
01899 static int yy_init_globals (void)
01900 {
01901
01902
01903
01904
01905 (yy_buffer_stack) = 0;
01906 (yy_buffer_stack_top) = 0;
01907 (yy_buffer_stack_max) = 0;
01908 (yy_c_buf_p) = (char *) 0;
01909 (yy_init) = 0;
01910 (yy_start) = 0;
01911
01912
01913 #ifdef YY_STDINIT
01914 yyin = stdin;
01915 yyout = stdout;
01916 #else
01917 yyin = (FILE *) 0;
01918 yyout = (FILE *) 0;
01919 #endif
01920
01921
01922
01923
01924 return 0;
01925 }
01926
01927
01928 int yylex_destroy (void)
01929 {
01930
01931
01932 while(YY_CURRENT_BUFFER){
01933 yy_delete_buffer(YY_CURRENT_BUFFER );
01934 YY_CURRENT_BUFFER_LVALUE = NULL;
01935 yypop_buffer_state();
01936 }
01937
01938
01939 yyfree((yy_buffer_stack) );
01940 (yy_buffer_stack) = NULL;
01941
01942
01943
01944 yy_init_globals( );
01945
01946 return 0;
01947 }
01948
01949
01950
01951
01952
01953 #ifndef yytext_ptr
01954 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
01955 {
01956 register int i;
01957 for ( i = 0; i < n; ++i )
01958 s1[i] = s2[i];
01959 }
01960 #endif
01961
01962 #ifdef YY_NEED_STRLEN
01963 static int yy_flex_strlen (yyconst char * s )
01964 {
01965 register int n;
01966 for ( n = 0; s[n]; ++n )
01967 ;
01968
01969 return n;
01970 }
01971 #endif
01972
01973 void *yyalloc (yy_size_t size )
01974 {
01975 return (void *) malloc( size );
01976 }
01977
01978 void *yyrealloc (void * ptr, yy_size_t size )
01979 {
01980
01981
01982
01983
01984
01985
01986
01987 return (void *) realloc( (char *) ptr, size );
01988 }
01989
01990 void yyfree (void * ptr )
01991 {
01992 free( (char *) ptr );
01993 }
01994
01995 #define YYTABLES_NAME "yytables"
01996
01997 #line 135 "data-lexer.l"
01998
01999
02000
02001 static void read_string()
02002 {
02003 char result[5000];
02004 int i = 0;
02005 char t;
02006 for(;;)
02007 {
02008 while ((t=yyinput())!='\'')
02009 {
02010 result[i++]=t;
02011 assert(i<5000);
02012
02013 if (t==EOF) yyerror("eof in string");
02014 }
02015
02016
02017 t=yyinput();
02018 if (t!='\'')
02019 {
02020 yyunput(t,yytext);
02021 result[i++]=0;
02022 yylval=String::parse(result);
02023 return;
02024 }
02025 result[i++]='\'';
02026 result[i++]='\'';
02027 }
02028 }
02029
02030 int yywrap()
02031 {
02032 return 1;
02033 }
02034
02040 #ifdef LEXER_FIX1
02041 void yyset_in (FILE * in_str )
02042 {
02043 yyin = in_str ;
02044 }
02045
02046 void yyset_out (FILE * out_str )
02047 {
02048 yyout = out_str ;
02049 }
02050
02051 #endif