X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/6fb0204d71beff637638ef52978df0e8f58453d7..dd403579d19e40839ebcead05fbd1a16dc3a19e6:/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 6b35f7928b..cfb0ee15b0 100644 --- a/src/gras/DataDesc/ddt_parse.yy.c +++ b/src/gras/DataDesc/ddt_parse.yy.c @@ -1,15 +1,33 @@ -#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 /* A lexical scanner generated by flex */ +#define yy_create_buffer gras_ddt_parse__create_buffer +#define yy_delete_buffer gras_ddt_parse__delete_buffer +#define yy_flex_debug gras_ddt_parse__flex_debug +#define yy_init_buffer gras_ddt_parse__init_buffer +#define yy_flush_buffer gras_ddt_parse__flush_buffer +#define yy_load_buffer_state gras_ddt_parse__load_buffer_state +#define yy_switch_to_buffer gras_ddt_parse__switch_to_buffer +#define yyin gras_ddt_parse_in +#define yyleng gras_ddt_parse_leng +#define yylex gras_ddt_parse_lex +#define yylineno gras_ddt_parse_lineno +#define yyout gras_ddt_parse_out +#define yyrestart gras_ddt_parse_restart +#define yytext gras_ddt_parse_text +#define yywrap gras_ddt_parse_wrap +#define yyalloc gras_ddt_parse_alloc +#define yyrealloc gras_ddt_parse_realloc +#define yyfree gras_ddt_parse_free + #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 35 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif @@ -31,7 +49,15 @@ /* C99 systems have . Non-C99 systems may or may not. */ -#if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L +#if defined (__STDC_VERSION__) && __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; @@ -46,7 +72,6 @@ typedef int flex_int32_t; typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; -#endif /* ! C99 */ /* Limits of integral types. */ #ifndef INT8_MIN @@ -77,6 +102,8 @@ typedef unsigned int flex_uint32_t; #define UINT32_MAX (4294967295U) #endif +#endif /* ! C99 */ + #endif /* ! FLEXINT_H */ #ifdef __cplusplus @@ -86,11 +113,12 @@ typedef unsigned int flex_uint32_t; #else /* ! __cplusplus */ -#if __STDC__ +/* C99 requires __STDC__ to be defined as 1. */ +#if defined (__STDC__) #define YY_USE_CONST -#endif /* __STDC__ */ +#endif /* defined (__STDC__) */ #endif /* ! __cplusplus */ #ifdef YY_USE_CONST @@ -135,6 +163,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; @@ -166,14 +198,9 @@ extern FILE *gras_ddt_parse_in, *gras_ddt_parse_out; #define unput(c) yyunput( c, (yytext_ptr) ) -/* The following is because we cannot portably get our hands on size_t - * (without autoconf's help, which isn't available because we want - * flex-generated scanners to compile on their own). - */ - #ifndef YY_TYPEDEF_YY_SIZE_T #define YY_TYPEDEF_YY_SIZE_T -typedef unsigned int yy_size_t; +typedef size_t yy_size_t; #endif #ifndef YY_STRUCT_YY_BUFFER_STATE @@ -268,7 +295,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 @@ -480,13 +507,11 @@ 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 @@ -501,8 +526,6 @@ char *gras_ddt_parse_text; 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 +543,37 @@ char *gras_ddt_parse_text; #define YY_EXTRA_TYPE void * #endif +static int yy_init_globals (void ); + +/* Accessor methods to globals. + These are made visible to non-reentrant scanners for convenience. */ + +int gras_ddt_parse_lex_destroy (void ); + +int gras_ddt_parse_get_debug (void ); + +void gras_ddt_parse_set_debug (int debug_flag ); + +YY_EXTRA_TYPE gras_ddt_parse_get_extra (void ); + +void gras_ddt_parse_set_extra (YY_EXTRA_TYPE user_defined ); + +FILE *gras_ddt_parse_get_in (void ); + +void gras_ddt_parse_set_in (FILE * in_str ); + +FILE *gras_ddt_parse_get_out (void ); + +void gras_ddt_parse_set_out (FILE * out_str ); + +int gras_ddt_parse_get_leng (void ); + +char *gras_ddt_parse_get_text (void ); + +int gras_ddt_parse_get_lineno (void ); + +void gras_ddt_parse_set_lineno (int line_number ); + /* Macros after this point can all be overridden by user definitions in * section 1. */ @@ -562,7 +616,7 @@ static int input (void ); /* This used to be an fputs(), but since the string might contain NUL's, * we now use fwrite(). */ -#define ECHO (void) fwrite( gras_ddt_parse_text, gras_ddt_parse_leng, 1, gras_ddt_parse_out ) +#define ECHO do { if (fwrite( gras_ddt_parse_text, gras_ddt_parse_leng, 1, gras_ddt_parse_out )) {} } while (0) #endif /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, @@ -655,16 +709,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; -#line 664 "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; @@ -745,12 +795,10 @@ do_action: /* This label is used only to access EOF actions. */ case 1: YY_RULE_SETUP -#line 36 "gras/DataDesc/ddt_parse.yy.l" YY_BREAK case 2: YY_RULE_SETUP -#line 38 "gras/DataDesc/ddt_parse.yy.l" { /****************** ANNOTATION ************************/ DEBUG0("Begin annotation"); annotate_caller = INITIAL; @@ -761,7 +809,6 @@ YY_RULE_SETUP YY_BREAK case 3: YY_RULE_SETUP -#line 45 "gras/DataDesc/ddt_parse.yy.l" { /* trim annotation */ DEBUG0("Begin annotation"); annotate_caller = foo; @@ -772,7 +819,6 @@ YY_RULE_SETUP YY_BREAK case 4: YY_RULE_SETUP -#line 53 "gras/DataDesc/ddt_parse.yy.l" { DEBUG0("End annotation"); gras_ddt_parse_char_pos+= strlen(gras_ddt_parse_text); @@ -782,7 +828,6 @@ YY_RULE_SETUP YY_BREAK case 5: YY_RULE_SETUP -#line 60 "gras/DataDesc/ddt_parse.yy.l" { PARSE_ERROR0("``/*g'' construct closed by a regular ``*/''"); } @@ -790,14 +835,12 @@ YY_RULE_SETUP case 6: /* rule 6 can match eol */ YY_RULE_SETUP -#line 63 "gras/DataDesc/ddt_parse.yy.l" { PARSE_ERROR0("Type annotation cannot spread over several lines"); } YY_BREAK case 7: YY_RULE_SETUP -#line 67 "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); @@ -806,7 +849,6 @@ YY_RULE_SETUP YY_BREAK case 8: YY_RULE_SETUP -#line 73 "gras/DataDesc/ddt_parse.yy.l" { /****************** COMMENTS ************************/ /* constructs like : */ /*g [string] g*/ @@ -817,7 +859,6 @@ YY_RULE_SETUP YY_BREAK case 9: YY_RULE_SETUP -#line 81 "gras/DataDesc/ddt_parse.yy.l" { comment_caller = foo; BEGIN(comment); @@ -825,20 +866,17 @@ YY_RULE_SETUP YY_BREAK case 10: YY_RULE_SETUP -#line 86 "gras/DataDesc/ddt_parse.yy.l" { /* eat anything that's not a '*' */ } YY_BREAK case 11: YY_RULE_SETUP -#line 88 "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 90 "gras/DataDesc/ddt_parse.yy.l" { ++gras_ddt_parse_line_pos; gras_ddt_parse_col_pos=0; @@ -847,7 +885,6 @@ YY_RULE_SETUP YY_BREAK case 13: YY_RULE_SETUP -#line 95 "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); @@ -856,7 +893,6 @@ YY_RULE_SETUP YY_BREAK case 14: YY_RULE_SETUP -#line 101 "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); @@ -866,7 +902,6 @@ YY_RULE_SETUP YY_BREAK case 15: YY_RULE_SETUP -#line 107 "gras/DataDesc/ddt_parse.yy.l" { gras_ddt_parse_char_pos++; gras_ddt_parse_col_pos++; @@ -876,7 +911,6 @@ YY_RULE_SETUP YY_BREAK case 16: YY_RULE_SETUP -#line 113 "gras/DataDesc/ddt_parse.yy.l" { gras_ddt_parse_char_pos++; gras_ddt_parse_col_pos++; @@ -886,7 +920,6 @@ YY_RULE_SETUP YY_BREAK case 17: YY_RULE_SETUP -#line 119 "gras/DataDesc/ddt_parse.yy.l" { gras_ddt_parse_char_pos++; gras_ddt_parse_col_pos++; @@ -896,7 +929,6 @@ YY_RULE_SETUP YY_BREAK case 18: YY_RULE_SETUP -#line 125 "gras/DataDesc/ddt_parse.yy.l" { gras_ddt_parse_char_pos++; gras_ddt_parse_col_pos++; @@ -906,7 +938,6 @@ YY_RULE_SETUP YY_BREAK case 19: YY_RULE_SETUP -#line 131 "gras/DataDesc/ddt_parse.yy.l" { gras_ddt_parse_char_pos++; gras_ddt_parse_col_pos++; @@ -916,7 +947,6 @@ YY_RULE_SETUP YY_BREAK case 20: YY_RULE_SETUP -#line 137 "gras/DataDesc/ddt_parse.yy.l" { gras_ddt_parse_char_pos++; gras_ddt_parse_col_pos++; @@ -926,7 +956,6 @@ YY_RULE_SETUP YY_BREAK case 21: YY_RULE_SETUP -#line 143 "gras/DataDesc/ddt_parse.yy.l" { gras_ddt_parse_char_pos++; gras_ddt_parse_col_pos++; @@ -936,7 +965,6 @@ YY_RULE_SETUP YY_BREAK case 22: YY_RULE_SETUP -#line 149 "gras/DataDesc/ddt_parse.yy.l" { gras_ddt_parse_char_pos++; gras_ddt_parse_col_pos++; @@ -946,7 +974,6 @@ YY_RULE_SETUP YY_BREAK case 23: YY_RULE_SETUP -#line 155 "gras/DataDesc/ddt_parse.yy.l" { gras_ddt_parse_char_pos++; gras_ddt_parse_col_pos++; @@ -957,7 +984,6 @@ YY_RULE_SETUP case 24: /* rule 24 can match eol */ YY_RULE_SETUP -#line 161 "gras/DataDesc/ddt_parse.yy.l" { gras_ddt_parse_line_pos++; gras_ddt_parse_char_pos++; @@ -967,7 +993,6 @@ YY_RULE_SETUP YY_BREAK case 25: YY_RULE_SETUP -#line 167 "gras/DataDesc/ddt_parse.yy.l" { gras_ddt_parse_char_pos++; gras_ddt_parse_col_pos++; @@ -976,10 +1001,8 @@ YY_RULE_SETUP YY_BREAK case 26: YY_RULE_SETUP -#line 172 "gras/DataDesc/ddt_parse.yy.l" ECHO; YY_BREAK -#line 983 "gras/DataDesc/ddt_parse.yy.c" case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(annotate): case YY_STATE_EOF(comment): @@ -1168,7 +1191,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 ) @@ -1213,7 +1236,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); } @@ -1237,6 +1260,14 @@ static int yy_get_next_buffer (void) else ret_val = EOB_ACT_CONTINUE_SCAN; + if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { + /* Extend the array by 50%, plus the number we really need. */ + yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) gras_ddt_parse_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); + if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) + YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); + } + (yy_n_chars) += number_to_move; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; @@ -1524,7 +1555,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 */ @@ -1652,7 +1683,9 @@ static void gras_ddt_parse_ensure_buffer_stack (void) (yy_buffer_stack) = (struct yy_buffer_state**)gras_ddt_parse_alloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); - + if ( ! (yy_buffer_stack) ) + YY_FATAL_ERROR( "out of dynamic memory in gras_ddt_parse_ensure_buffer_stack()" ); + memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); (yy_buffer_stack_max) = num_to_alloc; @@ -1670,6 +1703,8 @@ static void gras_ddt_parse_ensure_buffer_stack (void) ((yy_buffer_stack), num_to_alloc * sizeof(struct yy_buffer_state*) ); + if ( ! (yy_buffer_stack) ) + YY_FATAL_ERROR( "out of dynamic memory in gras_ddt_parse_ensure_buffer_stack()" ); /* zero only the new slots.*/ memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); @@ -1714,16 +1749,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 @@ -1733,7 +1768,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; @@ -1741,15 +1776,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 ) @@ -1870,6 +1905,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) { @@ -1885,6 +1948,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; } @@ -1896,7 +1963,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 @@ -1905,7 +1972,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; @@ -1936,21 +2003,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 172 "gras/DataDesc/ddt_parse.yy.l" - - /* {space}+ { return(TOKEN_SPACE);} */ void gras_ddt_parse_dump(void) { @@ -1994,7 +2046,6 @@ void gras_ddt_parse_pointer_close(void) { gras_ddt_parse_tok_num = 0; } - void gras_ddt_parse_pointer_string_init(const char *string_to_parse) { gras_ddt_input_buffer = gras_ddt_parse__scan_string (string_to_parse); definition = string_to_parse;