Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Regenerate with newest flex, so that new gcc paranoia get dealt with
[simgrid.git] / src / gras / DataDesc / ddt_parse.yy.c
index 485f981..cfb0ee1 100644 (file)
@@ -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
 
 /* C99 systems have <inttypes.h>. 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 <inttypes.h>
 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 <string.h>
@@ -498,11 +523,9 @@ char *gras_ddt_parse_text;
   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 +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,19 +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;
 
-   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 +795,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 +809,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 +819,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 +828,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 +835,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 +849,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 +859,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 +866,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 +885,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 +893,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 +902,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 +911,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 +920,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 +929,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 +938,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 +947,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 +956,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 +965,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 +974,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 +984,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 +993,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 +1001,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 +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 )
@@ -1216,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);
                }
@@ -1240,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;
@@ -1527,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 */
     
@@ -1655,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;
@@ -1673,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*));
@@ -1717,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
@@ -1736,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;
@@ -1744,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 )
@@ -1873,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)
 {
@@ -1888,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;
 }
 
@@ -1899,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
@@ -1908,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;
@@ -1939,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 175 "gras/DataDesc/ddt_parse.yy.l"
-
-
 /* {space}+                { return(TOKEN_SPACE);} */
 
 void gras_ddt_parse_dump(void) {
@@ -1997,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;
@@ -2014,6 +2062,9 @@ void  gras_ddt_parse_pointer_string_close(void) {
   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:*/