X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/8c354c48ec90c997cc7213ce96ca97d882934166..b697365d2d5d7ac1558cfba04c50b0024a966808:/src/gras/DataDesc/ddt_parse.yy.c diff --git a/src/gras/DataDesc/ddt_parse.yy.c b/src/gras/DataDesc/ddt_parse.yy.c index eb241b8ef9..31bef83338 100644 --- a/src/gras/DataDesc/ddt_parse.yy.c +++ b/src/gras/DataDesc/ddt_parse.yy.c @@ -1,6 +1,5 @@ -#line 2 "gras/DataDesc/ddt_parse.yy.c" -#line 4 "gras/DataDesc/ddt_parse.yy.c" +#line 3 "gras/DataDesc/ddt_parse.yy.c" #define YY_INT_ALIGNED short int @@ -9,7 +8,7 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 5 -#define YY_FLEX_SUBMINOR_VERSION 31 +#define YY_FLEX_SUBMINOR_VERSION 33 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif @@ -31,7 +30,15 @@ /* C99 systems have . Non-C99 systems may or may not. */ -#if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L +#if __STDC_VERSION__ >= 199901L + +/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, + * if you want the limit (max/min) macros for int types. + */ +#ifndef __STDC_LIMIT_MACROS +#define __STDC_LIMIT_MACROS 1 +#endif + #include typedef int8_t flex_int8_t; typedef uint8_t flex_uint8_t; @@ -135,6 +142,10 @@ typedef unsigned int flex_uint32_t; #define YY_BUF_SIZE 16384 #endif +/* The state buf must be large enough to hold one state per character in the main buffer. + */ +#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) + #ifndef YY_TYPEDEF_YY_BUFFER_STATE #define YY_TYPEDEF_YY_BUFFER_STATE typedef struct yy_buffer_state *YY_BUFFER_STATE; @@ -268,7 +279,7 @@ int gras_ddt_parse_leng; /* Points to current character in buffer. */ static char *yy_c_buf_p = (char *) 0; -static int yy_init = 1; /* whether we need to initialize */ +static int yy_init = 0; /* whether we need to initialize */ static int yy_start = 0; /* start state number */ /* Flag which is used to allow gras_ddt_parse_wrap()'s to do buffer switches @@ -324,7 +335,7 @@ void gras_ddt_parse_free (void * ); /* Begin user sect3 */ -#define gras_ddt_parse_wrap(n) 1 +#define gras_ddt_parse_wrap() 1 #define YY_SKIP_YYWRAP typedef unsigned char YY_CHAR; @@ -480,29 +491,25 @@ int gras_ddt_parse__flex_debug = 0; #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET char *gras_ddt_parse_text; -#line 1 "gras/DataDesc/ddt_parse.yy.l" /* $Id$ */ /* DataDesc/ddt_parse -- automatic parsing of data structures */ /* Copyright (c) 2004 Arnaud Legrand, Martin Quinson. All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ -#line 12 "gras/DataDesc/ddt_parse.yy.l" #include "gras/DataDesc/datadesc_private.h" #include "gras/DataDesc/ddt_parse.yy.h" #include - YY_BUFFER_STATE input_buffer; - FILE *file_to_parse; + YY_BUFFER_STATE gras_ddt_input_buffer; + FILE *gras_ddt_file_to_parse; int gras_ddt_parse_line_pos = 1; int gras_ddt_parse_col_pos = 0; int gras_ddt_parse_char_pos = 0; int gras_ddt_parse_tok_num = 0; const char *definition; - XBT_LOG_NEW_DEFAULT_SUBCATEGORY(lexer,ddt_parse,"The crude internals of the lexer used for type parsing"); + XBT_LOG_NEW_DEFAULT_SUBCATEGORY(gras_ddt_lexer,gras_ddt_parse,"The crude internals of the lexer used for type parsing"); #define SHOW_WHERE DEBUG4("%d:%d (char #%d): seen '%s'", gras_ddt_parse_line_pos,gras_ddt_parse_col_pos,gras_ddt_parse_char_pos,gras_ddt_parse_text) -#line 505 "gras/DataDesc/ddt_parse.yy.c" - #define INITIAL 0 #define annotate 1 #define comment 2 @@ -520,6 +527,8 @@ char *gras_ddt_parse_text; #define YY_EXTRA_TYPE void * #endif +static int yy_init_globals (void ); + /* Macros after this point can all be overridden by user definitions in * section 1. */ @@ -655,19 +664,12 @@ YY_DECL register char *yy_cp, *yy_bp; register int yy_act; -#line 32 "gras/DataDesc/ddt_parse.yy.l" - int comment_caller=0; int annotate_caller=0; - char string_buf[GRAS_DDT_PARSE_MAX_STR_CONST]; - char *string_buf_ptr = NULL; - -#line 667 "gras/DataDesc/ddt_parse.yy.c" - - if ( (yy_init) ) + if ( !(yy_init) ) { - (yy_init) = 0; + (yy_init) = 1; #ifdef YY_USER_INIT YY_USER_INIT; @@ -748,12 +750,10 @@ do_action: /* This label is used only to access EOF actions. */ case 1: YY_RULE_SETUP -#line 39 "gras/DataDesc/ddt_parse.yy.l" YY_BREAK case 2: YY_RULE_SETUP -#line 41 "gras/DataDesc/ddt_parse.yy.l" { /****************** ANNOTATION ************************/ DEBUG0("Begin annotation"); annotate_caller = INITIAL; @@ -764,7 +764,6 @@ YY_RULE_SETUP YY_BREAK case 3: YY_RULE_SETUP -#line 48 "gras/DataDesc/ddt_parse.yy.l" { /* trim annotation */ DEBUG0("Begin annotation"); annotate_caller = foo; @@ -775,7 +774,6 @@ YY_RULE_SETUP YY_BREAK case 4: YY_RULE_SETUP -#line 56 "gras/DataDesc/ddt_parse.yy.l" { DEBUG0("End annotation"); gras_ddt_parse_char_pos+= strlen(gras_ddt_parse_text); @@ -785,7 +783,6 @@ YY_RULE_SETUP YY_BREAK case 5: YY_RULE_SETUP -#line 63 "gras/DataDesc/ddt_parse.yy.l" { PARSE_ERROR0("``/*g'' construct closed by a regular ``*/''"); } @@ -793,14 +790,12 @@ YY_RULE_SETUP case 6: /* rule 6 can match eol */ YY_RULE_SETUP -#line 66 "gras/DataDesc/ddt_parse.yy.l" { PARSE_ERROR0("Type annotation cannot spread over several lines"); } YY_BREAK case 7: YY_RULE_SETUP -#line 70 "gras/DataDesc/ddt_parse.yy.l" { /* eat the rest */ gras_ddt_parse_char_pos+= strlen(gras_ddt_parse_text); gras_ddt_parse_col_pos+= strlen(gras_ddt_parse_text); @@ -809,7 +804,6 @@ YY_RULE_SETUP YY_BREAK case 8: YY_RULE_SETUP -#line 76 "gras/DataDesc/ddt_parse.yy.l" { /****************** COMMENTS ************************/ /* constructs like : */ /*g [string] g*/ @@ -820,7 +814,6 @@ YY_RULE_SETUP YY_BREAK case 9: YY_RULE_SETUP -#line 84 "gras/DataDesc/ddt_parse.yy.l" { comment_caller = foo; BEGIN(comment); @@ -828,20 +821,17 @@ YY_RULE_SETUP YY_BREAK case 10: YY_RULE_SETUP -#line 89 "gras/DataDesc/ddt_parse.yy.l" { /* eat anything that's not a '*' */ } YY_BREAK case 11: YY_RULE_SETUP -#line 91 "gras/DataDesc/ddt_parse.yy.l" { /* eat up '*'s not followed by '/'s */ } YY_BREAK case 12: /* rule 12 can match eol */ YY_RULE_SETUP -#line 93 "gras/DataDesc/ddt_parse.yy.l" { ++gras_ddt_parse_line_pos; gras_ddt_parse_col_pos=0; @@ -850,7 +840,6 @@ YY_RULE_SETUP YY_BREAK case 13: YY_RULE_SETUP -#line 98 "gras/DataDesc/ddt_parse.yy.l" { gras_ddt_parse_char_pos+= strlen(gras_ddt_parse_text); gras_ddt_parse_col_pos+= strlen(gras_ddt_parse_text); @@ -859,7 +848,6 @@ YY_RULE_SETUP YY_BREAK case 14: YY_RULE_SETUP -#line 104 "gras/DataDesc/ddt_parse.yy.l" { /****************** STATEMENTS ************************/ gras_ddt_parse_char_pos += strlen(gras_ddt_parse_text); gras_ddt_parse_col_pos += strlen(gras_ddt_parse_text); @@ -869,7 +857,6 @@ YY_RULE_SETUP YY_BREAK case 15: YY_RULE_SETUP -#line 110 "gras/DataDesc/ddt_parse.yy.l" { gras_ddt_parse_char_pos++; gras_ddt_parse_col_pos++; @@ -879,7 +866,6 @@ YY_RULE_SETUP YY_BREAK case 16: YY_RULE_SETUP -#line 116 "gras/DataDesc/ddt_parse.yy.l" { gras_ddt_parse_char_pos++; gras_ddt_parse_col_pos++; @@ -889,7 +875,6 @@ YY_RULE_SETUP YY_BREAK case 17: YY_RULE_SETUP -#line 122 "gras/DataDesc/ddt_parse.yy.l" { gras_ddt_parse_char_pos++; gras_ddt_parse_col_pos++; @@ -899,7 +884,6 @@ YY_RULE_SETUP YY_BREAK case 18: YY_RULE_SETUP -#line 128 "gras/DataDesc/ddt_parse.yy.l" { gras_ddt_parse_char_pos++; gras_ddt_parse_col_pos++; @@ -909,7 +893,6 @@ YY_RULE_SETUP YY_BREAK case 19: YY_RULE_SETUP -#line 134 "gras/DataDesc/ddt_parse.yy.l" { gras_ddt_parse_char_pos++; gras_ddt_parse_col_pos++; @@ -919,7 +902,6 @@ YY_RULE_SETUP YY_BREAK case 20: YY_RULE_SETUP -#line 140 "gras/DataDesc/ddt_parse.yy.l" { gras_ddt_parse_char_pos++; gras_ddt_parse_col_pos++; @@ -929,7 +911,6 @@ YY_RULE_SETUP YY_BREAK case 21: YY_RULE_SETUP -#line 146 "gras/DataDesc/ddt_parse.yy.l" { gras_ddt_parse_char_pos++; gras_ddt_parse_col_pos++; @@ -939,7 +920,6 @@ YY_RULE_SETUP YY_BREAK case 22: YY_RULE_SETUP -#line 152 "gras/DataDesc/ddt_parse.yy.l" { gras_ddt_parse_char_pos++; gras_ddt_parse_col_pos++; @@ -949,7 +929,6 @@ YY_RULE_SETUP YY_BREAK case 23: YY_RULE_SETUP -#line 158 "gras/DataDesc/ddt_parse.yy.l" { gras_ddt_parse_char_pos++; gras_ddt_parse_col_pos++; @@ -960,7 +939,6 @@ YY_RULE_SETUP case 24: /* rule 24 can match eol */ YY_RULE_SETUP -#line 164 "gras/DataDesc/ddt_parse.yy.l" { gras_ddt_parse_line_pos++; gras_ddt_parse_char_pos++; @@ -970,7 +948,6 @@ YY_RULE_SETUP YY_BREAK case 25: YY_RULE_SETUP -#line 170 "gras/DataDesc/ddt_parse.yy.l" { gras_ddt_parse_char_pos++; gras_ddt_parse_col_pos++; @@ -979,10 +956,8 @@ YY_RULE_SETUP YY_BREAK case 26: YY_RULE_SETUP -#line 175 "gras/DataDesc/ddt_parse.yy.l" ECHO; YY_BREAK -#line 986 "gras/DataDesc/ddt_parse.yy.c" case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(annotate): case YY_STATE_EOF(comment): @@ -1171,7 +1146,7 @@ static int yy_get_next_buffer (void) else { - size_t num_to_read = + int num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; while ( num_to_read <= 0 ) @@ -1216,7 +1191,7 @@ static int yy_get_next_buffer (void) /* Read in more data. */ YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), - (yy_n_chars), num_to_read ); + (yy_n_chars), (size_t) num_to_read ); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); } @@ -1527,7 +1502,7 @@ static void gras_ddt_parse__load_buffer_state (void) gras_ddt_parse_free((void *) b ); } -#ifndef __cplusplus +#if !defined(__cplusplus) && !defined(WIN32) extern int isatty (int ); #endif /* __cplusplus */ @@ -1717,16 +1692,16 @@ YY_BUFFER_STATE gras_ddt_parse__scan_buffer (char * base, yy_size_t size ) /** Setup the input buffer state to scan a string. The next call to gras_ddt_parse_lex() will * scan from a @e copy of @a str. - * @param str a NUL-terminated string to scan + * @param yystr a NUL-terminated string to scan * * @return the newly allocated buffer state object. * @note If you want to scan bytes that may contain NUL values, then use * gras_ddt_parse__scan_bytes() instead. */ -YY_BUFFER_STATE gras_ddt_parse__scan_string (yyconst char * yy_str ) +YY_BUFFER_STATE gras_ddt_parse__scan_string (yyconst char * yystr ) { - return gras_ddt_parse__scan_bytes(yy_str,strlen(yy_str) ); + return gras_ddt_parse__scan_bytes(yystr,strlen(yystr) ); } /** Setup the input buffer state to scan the given bytes. The next call to gras_ddt_parse_lex() will @@ -1736,7 +1711,7 @@ YY_BUFFER_STATE gras_ddt_parse__scan_string (yyconst char * yy_str ) * * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE gras_ddt_parse__scan_bytes (yyconst char * bytes, int len ) +YY_BUFFER_STATE gras_ddt_parse__scan_bytes (yyconst char * yybytes, int _yybytes_len ) { YY_BUFFER_STATE b; char *buf; @@ -1744,15 +1719,15 @@ YY_BUFFER_STATE gras_ddt_parse__scan_bytes (yyconst char * bytes, int len ) int i; /* Get memory for full buffer, including space for trailing EOB's. */ - n = len + 2; + n = _yybytes_len + 2; buf = (char *) gras_ddt_parse_alloc(n ); if ( ! buf ) YY_FATAL_ERROR( "out of dynamic memory in gras_ddt_parse__scan_bytes()" ); - for ( i = 0; i < len; ++i ) - buf[i] = bytes[i]; + for ( i = 0; i < _yybytes_len; ++i ) + buf[i] = yybytes[i]; - buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR; + buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; b = gras_ddt_parse__scan_buffer(buf,n ); if ( ! b ) @@ -1873,6 +1848,34 @@ void gras_ddt_parse_set_debug (int bdebug ) gras_ddt_parse__flex_debug = bdebug ; } +static int yy_init_globals (void) +{ + /* Initialization is the same as for the non-reentrant scanner. + * This function is called from gras_ddt_parse_lex_destroy(), so don't allocate here. + */ + + (yy_buffer_stack) = 0; + (yy_buffer_stack_top) = 0; + (yy_buffer_stack_max) = 0; + (yy_c_buf_p) = (char *) 0; + (yy_init) = 0; + (yy_start) = 0; + +/* Defined in main.c */ +#ifdef YY_STDINIT + gras_ddt_parse_in = stdin; + gras_ddt_parse_out = stdout; +#else + gras_ddt_parse_in = (FILE *) 0; + gras_ddt_parse_out = (FILE *) 0; +#endif + + /* For future reference: Set errno on error, since we are called by + * gras_ddt_parse_lex_init() + */ + return 0; +} + /* gras_ddt_parse_lex_destroy is for both reentrant and non-reentrant scanners. */ int gras_ddt_parse_lex_destroy (void) { @@ -1888,6 +1891,10 @@ int gras_ddt_parse_lex_destroy (void) gras_ddt_parse_free((yy_buffer_stack) ); (yy_buffer_stack) = NULL; + /* Reset the globals. This is important in a non-reentrant scanner so the next time + * gras_ddt_parse_lex() is called, initialization will occur. */ + yy_init_globals( ); + return 0; } @@ -1899,7 +1906,7 @@ int gras_ddt_parse_lex_destroy (void) static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) { register int i; - for ( i = 0; i < n; ++i ) + for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif @@ -1908,7 +1915,7 @@ static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) static int yy_flex_strlen (yyconst char * s ) { register int n; - for ( n = 0; s[n]; ++n ) + for ( n = 0; s[n]; ++n ) ; return n; @@ -1939,21 +1946,6 @@ void gras_ddt_parse_free (void * ptr ) #define YYTABLES_NAME "yytables" -#undef YY_NEW_FILE -#undef YY_FLUSH_BUFFER -#undef yy_set_bol -#undef yy_new_buffer -#undef yy_set_interactive -#undef yytext_ptr -#undef YY_DO_BEFORE_ACTION - -#ifdef YY_DECL_IS_OURS -#undef YY_DECL_IS_OURS -#undef YY_DECL -#endif -#line 175 "gras/DataDesc/ddt_parse.yy.l" - - /* {space}+ { return(TOKEN_SPACE);} */ void gras_ddt_parse_dump(void) { @@ -1978,9 +1970,9 @@ int gras_ddt_parse_lex_n_dump(void) { } void gras_ddt_parse_pointer_init(const char *file) { - file_to_parse = fopen(file,"r"); - input_buffer = gras_ddt_parse__create_buffer(file_to_parse,10 ); - gras_ddt_parse__switch_to_buffer(input_buffer); + gras_ddt_file_to_parse = fopen(file,"r"); + gras_ddt_input_buffer = gras_ddt_parse__create_buffer(gras_ddt_file_to_parse,10 ); + gras_ddt_parse__switch_to_buffer(gras_ddt_input_buffer); gras_ddt_parse_line_pos = 1; gras_ddt_parse_char_pos = 0; @@ -1989,19 +1981,18 @@ void gras_ddt_parse_pointer_init(const char *file) { } void gras_ddt_parse_pointer_close(void) { - gras_ddt_parse__delete_buffer(input_buffer); - fclose(file_to_parse); + gras_ddt_parse__delete_buffer(gras_ddt_input_buffer); + fclose(gras_ddt_file_to_parse); gras_ddt_parse_line_pos = 1; gras_ddt_parse_char_pos = 0; gras_ddt_parse_tok_num = 0; } - void gras_ddt_parse_pointer_string_init(const char *string_to_parse) { - input_buffer = gras_ddt_parse__scan_string (string_to_parse); + gras_ddt_input_buffer = gras_ddt_parse__scan_string (string_to_parse); definition = string_to_parse; - gras_ddt_parse__switch_to_buffer(input_buffer); + gras_ddt_parse__switch_to_buffer(gras_ddt_input_buffer); gras_ddt_parse_line_pos = 1; gras_ddt_parse_char_pos = 0; @@ -2009,11 +2000,14 @@ void gras_ddt_parse_pointer_string_init(const char *string_to_parse) { } void gras_ddt_parse_pointer_string_close(void) { - gras_ddt_parse__delete_buffer(input_buffer); + gras_ddt_parse__delete_buffer(gras_ddt_input_buffer); gras_ddt_parse_line_pos = 1; gras_ddt_parse_char_pos = 0; gras_ddt_parse_tok_num = 0; + + if (0) + yyunput('\0',NULL); /* fake a use of this function to calm gcc down */ } /* Local variables:*/