Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Try to fix #8852 (SimGrid won't compile on Ubuntu 9.10) by betterly checking my argum...
[simgrid.git] / src / gras / DataDesc / ddt_parse.yy.c
index 485f981..4e0d0a1 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;
@@ -43,10 +69,9 @@ typedef uint32_t flex_uint32_t;
 typedef signed char flex_int8_t;
 typedef short int flex_int16_t;
 typedef int flex_int32_t;
-typedef unsigned char flex_uint8_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
@@ -84,14 +111,15 @@ typedef unsigned int flex_uint32_t;
 /* The "const" storage-class-modifier is valid. */
 #define YY_USE_CONST
 
-#else  /* ! __cplusplus */
+#else /* ! __cplusplus */
 
-#if __STDC__
+/* C99 requires __STDC__ to be defined as 1. */
+#if defined (__STDC__)
 
 #define YY_USE_CONST
 
-#endif /* __STDC__ */
-#endif /* ! __cplusplus */
+#endif /* defined (__STDC__) */
+#endif /* ! __cplusplus */
 
 #ifdef YY_USE_CONST
 #define yyconst 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;
@@ -148,8 +180,8 @@ extern FILE *gras_ddt_parse_in, *gras_ddt_parse_out;
 #define EOB_ACT_END_OF_FILE 1
 #define EOB_ACT_LAST_MATCH 2
 
-    #define YY_LESS_LINENO(n)
-    
+#define YY_LESS_LINENO(n)
+
 /* Return all but the first "n" matched characters back to the input stream. */
 #define yyless(n) \
        do \
@@ -166,85 +198,79 @@ 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
 #define YY_STRUCT_YY_BUFFER_STATE
-struct yy_buffer_state
-       {
-       FILE *yy_input_file;
-
-       char *yy_ch_buf;                /* input buffer */
-       char *yy_buf_pos;               /* current position in input buffer */
-
-       /* Size of input buffer in bytes, not including room for EOB
-        * characters.
-        */
-       yy_size_t yy_buf_size;
-
-       /* Number of characters read into yy_ch_buf, not including EOB
-        * characters.
-        */
-       int yy_n_chars;
-
-       /* Whether we "own" the buffer - i.e., we know we created it,
-        * and can realloc() it to grow it, and should free() it to
-        * delete it.
-        */
-       int yy_is_our_buffer;
-
-       /* Whether this is an "interactive" input source; if so, and
-        * if we're using stdio for input, then we want to use getc()
-        * instead of fread(), to make sure we stop fetching input after
-        * each newline.
-        */
-       int yy_is_interactive;
-
-       /* Whether we're considered to be at the beginning of a line.
-        * If so, '^' rules will be active on the next match, otherwise
-        * not.
-        */
-       int yy_at_bol;
-
-    int yy_bs_lineno; /**< The line count. */
-    int yy_bs_column; /**< The column count. */
-    
-       /* Whether to try to fill the input buffer when we reach the
-        * end of it.
-        */
-       int yy_fill_buffer;
-
-       int yy_buffer_status;
+struct yy_buffer_state {
+  FILE *yy_input_file;
+
+  char *yy_ch_buf;              /* input buffer */
+  char *yy_buf_pos;             /* current position in input buffer */
+
+  /* Size of input buffer in bytes, not including room for EOB
+   * characters.
+   */
+  yy_size_t yy_buf_size;
+
+  /* Number of characters read into yy_ch_buf, not including EOB
+   * characters.
+   */
+  int yy_n_chars;
+
+  /* Whether we "own" the buffer - i.e., we know we created it,
+   * and can realloc() it to grow it, and should free() it to
+   * delete it.
+   */
+  int yy_is_our_buffer;
+
+  /* Whether this is an "interactive" input source; if so, and
+   * if we're using stdio for input, then we want to use getc()
+   * instead of fread(), to make sure we stop fetching input after
+   * each newline.
+   */
+  int yy_is_interactive;
+
+  /* Whether we're considered to be at the beginning of a line.
+   * If so, '^' rules will be active on the next match, otherwise
+   * not.
+   */
+  int yy_at_bol;
+
+  int yy_bs_lineno;   /**< The line count. */
+  int yy_bs_column;   /**< The column count. */
+
+  /* Whether to try to fill the input buffer when we reach the
+   * end of it.
+   */
+  int yy_fill_buffer;
+
+  int yy_buffer_status;
 
 #define YY_BUFFER_NEW 0
 #define YY_BUFFER_NORMAL 1
-       /* When an EOF's been seen but there's still some text to process
-        * then we mark the buffer as YY_EOF_PENDING, to indicate that we
-        * shouldn't try reading from the input source any more.  We might
-        * still have a bunch of tokens to match, though, because of
-        * possible backing-up.
-        *
-        * When we actually see the EOF, we change the status to "new"
-        * (via gras_ddt_parse_restart()), so that the user can continue scanning by
-        * just pointing gras_ddt_parse_in at a new input file.
-        */
+  /* When an EOF's been seen but there's still some text to process
+   * then we mark the buffer as YY_EOF_PENDING, to indicate that we
+   * shouldn't try reading from the input source any more.  We might
+   * still have a bunch of tokens to match, though, because of
+   * possible backing-up.
+   *
+   * When we actually see the EOF, we change the status to "new"
+   * (via gras_ddt_parse_restart()), so that the user can continue scanning by
+   * just pointing gras_ddt_parse_in at a new input file.
+   */
 #define YY_BUFFER_EOF_PENDING 2
 
-       };
+};
 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
 
 /* Stack of input buffers. */
 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
-static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
+static YY_BUFFER_STATE *yy_buffer_stack = 0;  /**< Stack as an array. */
 
 /* We provide macros for accessing buffer states in case in the
  * future we want to put the buffer states in a more general
@@ -263,40 +289,40 @@ static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
 
 /* yy_hold_char holds the character lost when gras_ddt_parse_text is formed. */
 static char yy_hold_char;
-static int yy_n_chars;         /* number of characters read into yy_ch_buf */
+static int yy_n_chars;          /* number of characters read into yy_ch_buf */
 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_start = 0;       /* start state number */
+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
  * instead of setting up a fresh gras_ddt_parse_in.  A bit of a hack ...
  */
 static int yy_did_buffer_switch_on_eof;
 
-void gras_ddt_parse_restart (FILE *input_file  );
-void gras_ddt_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer  );
-YY_BUFFER_STATE gras_ddt_parse__create_buffer (FILE *file,int size  );
-void gras_ddt_parse__delete_buffer (YY_BUFFER_STATE b  );
-void gras_ddt_parse__flush_buffer (YY_BUFFER_STATE b  );
-void gras_ddt_parse_push_buffer_state (YY_BUFFER_STATE new_buffer  );
-void gras_ddt_parse_pop_buffer_state (void );
+void gras_ddt_parse_restart(FILE * input_file);
+void gras_ddt_parse__switch_to_buffer(YY_BUFFER_STATE new_buffer);
+YY_BUFFER_STATE gras_ddt_parse__create_buffer(FILE * file, int size);
+void gras_ddt_parse__delete_buffer(YY_BUFFER_STATE b);
+void gras_ddt_parse__flush_buffer(YY_BUFFER_STATE b);
+void gras_ddt_parse_push_buffer_state(YY_BUFFER_STATE new_buffer);
+void gras_ddt_parse_pop_buffer_state(void);
 
-static void gras_ddt_parse_ensure_buffer_stack (void );
-static void gras_ddt_parse__load_buffer_state (void );
-static void gras_ddt_parse__init_buffer (YY_BUFFER_STATE b,FILE *file  );
+static void gras_ddt_parse_ensure_buffer_stack(void);
+static void gras_ddt_parse__load_buffer_state(void);
+static void gras_ddt_parse__init_buffer(YY_BUFFER_STATE b, FILE * file);
 
 #define YY_FLUSH_BUFFER gras_ddt_parse__flush_buffer(YY_CURRENT_BUFFER )
 
-YY_BUFFER_STATE gras_ddt_parse__scan_buffer (char *base,yy_size_t size  );
-YY_BUFFER_STATE gras_ddt_parse__scan_string (yyconst char *yy_str  );
-YY_BUFFER_STATE gras_ddt_parse__scan_bytes (yyconst char *bytes,int len  );
+YY_BUFFER_STATE gras_ddt_parse__scan_buffer(char *base, yy_size_t size);
+YY_BUFFER_STATE gras_ddt_parse__scan_string(yyconst char *yy_str);
+YY_BUFFER_STATE gras_ddt_parse__scan_bytes(yyconst char *bytes, int len);
 
-void *gras_ddt_parse_alloc (yy_size_t  );
-void *gras_ddt_parse_realloc (void *,yy_size_t  );
-void gras_ddt_parse_free (void *  );
+void *gras_ddt_parse_alloc(yy_size_t);
+void *gras_ddt_parse_realloc(void *, yy_size_t);
+void gras_ddt_parse_free(void *);
 
 #define yy_new_buffer gras_ddt_parse__create_buffer
 
@@ -340,10 +366,10 @@ int gras_ddt_parse_lineno = 1;
 extern char *gras_ddt_parse_text;
 #define yytext_ptr gras_ddt_parse_text
 
-static yy_state_type yy_get_previous_state (void );
-static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
-static int yy_get_next_buffer (void );
-static void yy_fatal_error (yyconst char msg[]  );
+static yy_state_type yy_get_previous_state(void);
+static yy_state_type yy_try_NUL_trans(yy_state_type current_state);
+static int yy_get_next_buffer(void);
+static void yy_fatal_error(yyconst char msg[]);
 
 /* Done after the current pattern has been matched and before the
  * corresponding action - sets up gras_ddt_parse_text.
@@ -359,112 +385,104 @@ static void yy_fatal_error (yyconst char msg[]  );
 #define YY_END_OF_BUFFER 27
 /* This struct is not used in this scanner,
    but its presence is necessary. */
-struct yy_trans_info
-       {
-       flex_int32_t yy_verify;
-       flex_int32_t yy_nxt;
-       };
-static yyconst flex_int16_t yy_accept[61] =
-    {   0,
-       14,   14,    7,    7,   10,   10,    0,    0,   27,   25,
-       24,   19,   20,   21,   23,   14,   25,   22,   17,   18,
-       15,   16,    7,    7,    6,    7,    7,   10,   12,   11,
-       26,   26,   14,    0,    1,    7,    7,    7,    5,    7,
-       10,   11,   11,   13,    0,    0,    2,    1,    4,    0,
-        3,    0,    2,    0,    3,    0,    0,    8,    9,    0
-    } ;
-
-static yyconst flex_int32_t yy_ec[256] =
-    {   0,
-        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    2,    1,    1,    1,    1,    1,    1,    1,    4,
-        5,    6,    1,    7,    8,    8,    9,   10,   10,   10,
-       10,   10,   10,   10,   10,   10,   10,    1,   11,    1,
-        1,    1,    1,    1,    8,    8,    8,    8,    8,    8,
-        8,    8,    8,    8,    8,    8,    8,    8,    8,    8,
-        8,    8,    8,    8,    8,    8,    8,    8,    8,    8,
-       12,    1,   13,   14,    8,    1,    8,    8,    8,    8,
-
-        8,    8,   15,    8,    8,    8,    8,    8,    8,    8,
-        8,    8,    8,    8,    8,    8,    8,    8,    8,    8,
-        8,    8,   16,    1,   17,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1
-    } ;
-
-static yyconst flex_int32_t yy_meta[18] =
-    {   0,
-        1,    1,    2,    1,    1,    3,    1,    4,    1,    4,
-        1,    1,    1,    1,    4,    1,    1
-    } ;
-
-static yyconst flex_int16_t yy_base[69] =
-    {   0,
-        0,    0,   16,   30,   17,   18,   78,   77,   85,   88,
-       88,   88,   88,   88,   88,    0,   19,   88,   88,   88,
-       88,   88,    0,   24,   88,   75,   77,    0,   88,   21,
-       88,   76,    0,   22,    0,    0,   27,   75,    0,   71,
-        0,   29,   34,   88,   29,   65,   76,    0,    0,   63,
-       74,   60,   72,   56,   65,   51,   50,   88,   88,   88,
-       45,   49,   53,   55,   57,   61,   65,   69
-    } ;
-
-static yyconst flex_int16_t yy_def[69] =
-    {   0,
-       60,    1,   61,   61,   62,   62,   63,   63,   60,   60,
-       60,   60,   60,   60,   60,   64,   60,   60,   60,   60,
-       60,   60,   65,   65,   60,   65,   65,   66,   60,   67,
-       60,   60,   64,   60,   68,   65,   65,   65,   65,   65,
-       66,   67,   67,   60,   60,   60,   60,   68,   65,   60,
-       60,   60,   60,   60,   60,   60,   60,   60,   60,    0,
-       60,   60,   60,   60,   60,   60,   60,   60
-    } ;
-
-static yyconst flex_int16_t yy_nxt[106] =
-    {   0,
-       10,   10,   11,   12,   13,   14,   15,   16,   17,   16,
-       18,   19,   20,   10,   16,   21,   22,   24,   25,   29,
-       29,   26,   30,   30,   34,   37,   43,   35,   37,   44,
-       27,   24,   25,   46,   60,   26,   47,   60,   38,   43,
-       50,   38,   44,   51,   27,   23,   23,   23,   23,   28,
-       28,   28,   28,   31,   31,   31,   31,   36,   33,   36,
-       36,   41,   59,   58,   41,   42,   55,   42,   42,   48,
-       57,   48,   48,   53,   56,   55,   54,   53,   52,   49,
-       40,   45,   40,   39,   60,   32,   32,    9,   60,   60,
-       60,   60,   60,   60,   60,   60,   60,   60,   60,   60,
-
-       60,   60,   60,   60,   60
-    } ;
-
-static yyconst flex_int16_t yy_chk[106] =
-    {   0,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    3,    3,    5,
-        6,    3,    5,    6,   17,   24,   30,   17,   37,   30,
-        3,    4,    4,   34,   42,    4,   34,   42,   24,   43,
-       45,   37,   43,   45,    4,   61,   61,   61,   61,   62,
-       62,   62,   62,   63,   63,   63,   63,   65,   64,   65,
-       65,   66,   57,   56,   66,   67,   55,   67,   67,   68,
-       54,   68,   68,   53,   52,   51,   50,   47,   46,   40,
-       38,   32,   27,   26,    9,    8,    7,   60,   60,   60,
-       60,   60,   60,   60,   60,   60,   60,   60,   60,   60,
-
-       60,   60,   60,   60,   60
-    } ;
+struct yy_trans_info {
+  flex_int32_t yy_verify;
+  flex_int32_t yy_nxt;
+};
+static yyconst flex_int16_t yy_accept[61] = { 0,
+  14, 14, 7, 7, 10, 10, 0, 0, 27, 25,
+  24, 19, 20, 21, 23, 14, 25, 22, 17, 18,
+  15, 16, 7, 7, 6, 7, 7, 10, 12, 11,
+  26, 26, 14, 0, 1, 7, 7, 7, 5, 7,
+  10, 11, 11, 13, 0, 0, 2, 1, 4, 0,
+  3, 0, 2, 0, 3, 0, 0, 8, 9, 0
+};
+
+static yyconst flex_int32_t yy_ec[256] = { 0,
+  1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+  1, 2, 1, 1, 1, 1, 1, 1, 1, 4,
+  5, 6, 1, 7, 8, 8, 9, 10, 10, 10,
+  10, 10, 10, 10, 10, 10, 10, 1, 11, 1,
+  1, 1, 1, 1, 8, 8, 8, 8, 8, 8,
+  8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
+  8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
+  12, 1, 13, 14, 8, 1, 8, 8, 8, 8,
+
+  8, 8, 15, 8, 8, 8, 8, 8, 8, 8,
+  8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
+  8, 8, 16, 1, 17, 1, 1, 1, 1, 1,
+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+
+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+  1, 1, 1, 1, 1
+};
+
+static yyconst flex_int32_t yy_meta[18] = { 0,
+  1, 1, 2, 1, 1, 3, 1, 4, 1, 4,
+  1, 1, 1, 1, 4, 1, 1
+};
+
+static yyconst flex_int16_t yy_base[69] = { 0,
+  0, 0, 16, 30, 17, 18, 78, 77, 85, 88,
+  88, 88, 88, 88, 88, 0, 19, 88, 88, 88,
+  88, 88, 0, 24, 88, 75, 77, 0, 88, 21,
+  88, 76, 0, 22, 0, 0, 27, 75, 0, 71,
+  0, 29, 34, 88, 29, 65, 76, 0, 0, 63,
+  74, 60, 72, 56, 65, 51, 50, 88, 88, 88,
+  45, 49, 53, 55, 57, 61, 65, 69
+};
+
+static yyconst flex_int16_t yy_def[69] = { 0,
+  60, 1, 61, 61, 62, 62, 63, 63, 60, 60,
+  60, 60, 60, 60, 60, 64, 60, 60, 60, 60,
+  60, 60, 65, 65, 60, 65, 65, 66, 60, 67,
+  60, 60, 64, 60, 68, 65, 65, 65, 65, 65,
+  66, 67, 67, 60, 60, 60, 60, 68, 65, 60,
+  60, 60, 60, 60, 60, 60, 60, 60, 60, 0,
+  60, 60, 60, 60, 60, 60, 60, 60
+};
+
+static yyconst flex_int16_t yy_nxt[106] = { 0,
+  10, 10, 11, 12, 13, 14, 15, 16, 17, 16,
+  18, 19, 20, 10, 16, 21, 22, 24, 25, 29,
+  29, 26, 30, 30, 34, 37, 43, 35, 37, 44,
+  27, 24, 25, 46, 60, 26, 47, 60, 38, 43,
+  50, 38, 44, 51, 27, 23, 23, 23, 23, 28,
+  28, 28, 28, 31, 31, 31, 31, 36, 33, 36,
+  36, 41, 59, 58, 41, 42, 55, 42, 42, 48,
+  57, 48, 48, 53, 56, 55, 54, 53, 52, 49,
+  40, 45, 40, 39, 60, 32, 32, 9, 60, 60,
+  60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
+
+  60, 60, 60, 60, 60
+};
+
+static yyconst flex_int16_t yy_chk[106] = { 0,
+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+  1, 1, 1, 1, 1, 1, 1, 3, 3, 5,
+  6, 3, 5, 6, 17, 24, 30, 17, 37, 30,
+  3, 4, 4, 34, 42, 4, 34, 42, 24, 43,
+  45, 37, 43, 45, 4, 61, 61, 61, 61, 62,
+  62, 62, 62, 63, 63, 63, 63, 65, 64, 65,
+  65, 66, 57, 56, 66, 67, 55, 67, 67, 68,
+  54, 68, 68, 53, 52, 51, 50, 47, 46, 40,
+  38, 32, 27, 26, 9, 8, 7, 60, 60, 60,
+  60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
+
+  60, 60, 60, 60, 60
+};
 
 static yy_state_type yy_last_accepting_state;
 static char *yy_last_accepting_cpos;
@@ -480,29 +498,26 @@ 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>
-  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");
+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(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,34 +535,65 @@ 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.
  */
 
 #ifndef YY_SKIP_YYWRAP
 #ifdef __cplusplus
-extern "C" int gras_ddt_parse_wrap (void );
+extern "C" int gras_ddt_parse_wrap(void);
 #else
-extern int gras_ddt_parse_wrap (void );
+extern int gras_ddt_parse_wrap(void);
 #endif
 #endif
 
-    static void yyunput (int c,char *buf_ptr  );
-    
+static void yyunput(int c, char *buf_ptr);
+
 #ifndef yytext_ptr
-static void yy_flex_strncpy (char *,yyconst char *,int );
+static void yy_flex_strncpy(char *, yyconst char *, int);
 #endif
 
 #ifdef YY_NEED_STRLEN
-static int yy_flex_strlen (yyconst char * );
+static int yy_flex_strlen(yyconst char *);
 #endif
 
 #ifndef YY_NO_INPUT
 
 #ifdef __cplusplus
-static int yyinput (void );
+static int yyinput(void);
 #else
-static int input (void );
+static int input(void);
 #endif
 
 #endif
@@ -562,7 +608,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,
@@ -627,7 +673,7 @@ static int input (void );
 #ifndef YY_DECL
 #define YY_DECL_IS_OURS 1
 
-extern int gras_ddt_parse_lex (void);
+extern int gras_ddt_parse_lex(void);
 
 #define YY_DECL int gras_ddt_parse_lex (void)
 #endif /* !YY_DECL */
@@ -649,474 +695,326 @@ extern int gras_ddt_parse_lex (void);
 
 /** The main scanner function which does all the work.
  */
-YY_DECL
-{
-       register yy_state_type yy_current_state;
-       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;
+YY_DECL {
+  register yy_state_type yy_current_state;
+  register char *yy_cp, *yy_bp;
+  register int yy_act;
 
-   char string_buf[GRAS_DDT_PARSE_MAX_STR_CONST];
-   char *string_buf_ptr = NULL;
+  int comment_caller = 0;
+  int annotate_caller = 0;
 
-#line 667 "gras/DataDesc/ddt_parse.yy.c"
-
-       if ( (yy_init) )
-               {
-               (yy_init) = 0;
+  if (!(yy_init)) {
+    (yy_init) = 1;
 
 #ifdef YY_USER_INIT
-               YY_USER_INIT;
+    YY_USER_INIT;
 #endif
 
-               if ( ! (yy_start) )
-                       (yy_start) = 1; /* first start state */
-
-               if ( ! gras_ddt_parse_in )
-                       gras_ddt_parse_in = stdin;
-
-               if ( ! gras_ddt_parse_out )
-                       gras_ddt_parse_out = stdout;
-
-               if ( ! YY_CURRENT_BUFFER ) {
-                       gras_ddt_parse_ensure_buffer_stack ();
-                       YY_CURRENT_BUFFER_LVALUE =
-                               gras_ddt_parse__create_buffer(gras_ddt_parse_in,YY_BUF_SIZE );
-               }
-
-               gras_ddt_parse__load_buffer_state( );
-               }
-
-       while ( 1 )             /* loops until end-of-file is reached */
-               {
-               yy_cp = (yy_c_buf_p);
-
-               /* Support of gras_ddt_parse_text. */
-               *yy_cp = (yy_hold_char);
-
-               /* yy_bp points to the position in yy_ch_buf of the start of
-                * the current run.
-                */
-               yy_bp = yy_cp;
-
-               yy_current_state = (yy_start);
-yy_match:
-               do
-                       {
-                       register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
-                       if ( yy_accept[yy_current_state] )
-                               {
-                               (yy_last_accepting_state) = yy_current_state;
-                               (yy_last_accepting_cpos) = yy_cp;
-                               }
-                       while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
-                               {
-                               yy_current_state = (int) yy_def[yy_current_state];
-                               if ( yy_current_state >= 61 )
-                                       yy_c = yy_meta[(unsigned int) yy_c];
-                               }
-                       yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-                       ++yy_cp;
-                       }
-               while ( yy_base[yy_current_state] != 88 );
-
-yy_find_action:
-               yy_act = yy_accept[yy_current_state];
-               if ( yy_act == 0 )
-                       { /* have to back up */
-                       yy_cp = (yy_last_accepting_cpos);
-                       yy_current_state = (yy_last_accepting_state);
-                       yy_act = yy_accept[yy_current_state];
-                       }
-
-               YY_DO_BEFORE_ACTION;
-
-do_action:     /* This label is used only to access EOF actions. */
-
-               switch ( yy_act )
-       { /* beginning of action switch */
-                       case 0: /* must back up */
-                       /* undo the effects of YY_DO_BEFORE_ACTION */
-                       *yy_cp = (yy_hold_char);
-                       yy_cp = (yy_last_accepting_cpos);
-                       yy_current_state = (yy_last_accepting_state);
-                       goto yy_find_action;
-
-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;
-  gras_ddt_parse_char_pos+= strlen(gras_ddt_parse_text);
-  gras_ddt_parse_col_pos+= strlen(gras_ddt_parse_text);
-  BEGIN(annotate);
-}
-       YY_BREAK
-case 3:
-YY_RULE_SETUP
-#line 48 "gras/DataDesc/ddt_parse.yy.l"
-{ /* trim annotation */
-  DEBUG0("Begin annotation");
-  annotate_caller = foo;
-  gras_ddt_parse_char_pos+= strlen(gras_ddt_parse_text);
-  gras_ddt_parse_col_pos+= strlen(gras_ddt_parse_text);
-  BEGIN(annotate);
-}
-       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);
-  gras_ddt_parse_col_pos+= strlen(gras_ddt_parse_text);
-  BEGIN(annotate_caller);
-}
-       YY_BREAK
-case 5:
-YY_RULE_SETUP
-#line 63 "gras/DataDesc/ddt_parse.yy.l"
-{
-  PARSE_ERROR0("``/*g'' construct closed by a regular ``*/''");
-}
-       YY_BREAK
-case 6:
+    if (!(yy_start))
+      (yy_start) = 1;           /* first start state */
+
+    if (!gras_ddt_parse_in)
+      gras_ddt_parse_in = stdin;
+
+    if (!gras_ddt_parse_out)
+      gras_ddt_parse_out = stdout;
+
+    if (!YY_CURRENT_BUFFER) {
+      gras_ddt_parse_ensure_buffer_stack();
+      YY_CURRENT_BUFFER_LVALUE =
+        gras_ddt_parse__create_buffer(gras_ddt_parse_in, YY_BUF_SIZE);
+    }
+
+    gras_ddt_parse__load_buffer_state();
+  }
+
+  while (1) {                   /* loops until end-of-file is reached */
+    yy_cp = (yy_c_buf_p);
+
+    /* Support of gras_ddt_parse_text. */
+    *yy_cp = (yy_hold_char);
+
+    /* yy_bp points to the position in yy_ch_buf of the start of
+     * the current run.
+     */
+    yy_bp = yy_cp;
+
+    yy_current_state = (yy_start);
+  yy_match:
+    do {
+      register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
+      if (yy_accept[yy_current_state]) {
+        (yy_last_accepting_state) = yy_current_state;
+        (yy_last_accepting_cpos) = yy_cp;
+      }
+      while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state) {
+        yy_current_state = (int) yy_def[yy_current_state];
+        if (yy_current_state >= 61)
+          yy_c = yy_meta[(unsigned int) yy_c];
+      }
+      yy_current_state =
+        yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
+      ++yy_cp;
+    }
+    while (yy_base[yy_current_state] != 88);
+
+  yy_find_action:
+    yy_act = yy_accept[yy_current_state];
+    if (yy_act == 0) {          /* have to back up */
+      yy_cp = (yy_last_accepting_cpos);
+      yy_current_state = (yy_last_accepting_state);
+      yy_act = yy_accept[yy_current_state];
+    }
+
+    YY_DO_BEFORE_ACTION;
+
+  do_action:                   /* This label is used only to access EOF actions. */
+
+    switch (yy_act) {           /* beginning of action switch */
+    case 0:                    /* must back up */
+      /* undo the effects of YY_DO_BEFORE_ACTION */
+      *yy_cp = (yy_hold_char);
+      yy_cp = (yy_last_accepting_cpos);
+      yy_current_state = (yy_last_accepting_state);
+      goto yy_find_action;
+
+    case 1:
+    YY_RULE_SETUP YY_BREAK case 2:
+      YY_RULE_SETUP {
+  /****************** ANNOTATION ************************/
+        DEBUG0("Begin annotation");
+        annotate_caller = INITIAL;
+        gras_ddt_parse_char_pos += strlen(gras_ddt_parse_text);
+        gras_ddt_parse_col_pos += strlen(gras_ddt_parse_text);
+        BEGIN(annotate);
+      }
+      YY_BREAK case 3:YY_RULE_SETUP {   /* trim annotation */
+        DEBUG0("Begin annotation");
+        annotate_caller = foo;
+        gras_ddt_parse_char_pos += strlen(gras_ddt_parse_text);
+        gras_ddt_parse_col_pos += strlen(gras_ddt_parse_text);
+        BEGIN(annotate);
+      } YY_BREAK case 4:YY_RULE_SETUP {
+        DEBUG0("End annotation");
+        gras_ddt_parse_char_pos += strlen(gras_ddt_parse_text);
+        gras_ddt_parse_col_pos += strlen(gras_ddt_parse_text);
+        BEGIN(annotate_caller);
+      } YY_BREAK case 5:YY_RULE_SETUP {
+        PARSE_ERROR0("``/*g'' construct closed by a regular ``*/''");
+      } YY_BREAK 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);
-  return GRAS_DDT_PARSE_TOKEN_ANNOTATE;
-}
-       YY_BREAK
-case 8:
-YY_RULE_SETUP
-#line 76 "gras/DataDesc/ddt_parse.yy.l"
-{ /****************** COMMENTS ************************/
-  /* constructs like : */
-    /*g [string] g*/ 
-  /* are not comments but size annotations */
-  comment_caller = INITIAL;
-  BEGIN(comment);
-}
-       YY_BREAK
-case 9:
-YY_RULE_SETUP
-#line 84 "gras/DataDesc/ddt_parse.yy.l"
-{
-  comment_caller = foo;
-  BEGIN(comment);
-}
-       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:
+        YY_RULE_SETUP {
+        PARSE_ERROR0("Type annotation cannot spread over several lines");
+      } YY_BREAK case 7:YY_RULE_SETUP { /* eat the rest */
+        gras_ddt_parse_char_pos += strlen(gras_ddt_parse_text);
+        gras_ddt_parse_col_pos += strlen(gras_ddt_parse_text);
+        return GRAS_DDT_PARSE_TOKEN_ANNOTATE;
+      } YY_BREAK case 8:YY_RULE_SETUP {
+  /****************** COMMENTS ************************/
+        /* constructs like : */
+        /*g [string] g */
+        /* are not comments but size annotations */
+        comment_caller = INITIAL;
+        BEGIN(comment);
+      } YY_BREAK case 9:YY_RULE_SETUP {
+        comment_caller = foo;
+        BEGIN(comment);
+      } YY_BREAK case 10:YY_RULE_SETUP {        /* eat anything that's not a '*' */
+      } YY_BREAK case 11:YY_RULE_SETUP {        /* 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;
-  gras_ddt_parse_char_pos++;
-}
-       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);
-  BEGIN(comment_caller);
-}
-       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);
-  SHOW_WHERE;
-  return(GRAS_DDT_PARSE_TOKEN_WORD);
-}
-       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++; 
-  SHOW_WHERE;
-  return(GRAS_DDT_PARSE_TOKEN_LA);
-}
-       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++;
-  SHOW_WHERE;
-  return(GRAS_DDT_PARSE_TOKEN_RA);
-}
-       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++; 
-  SHOW_WHERE;
-  return(GRAS_DDT_PARSE_TOKEN_LB);
-}
-       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++;
-  SHOW_WHERE;
-  return(GRAS_DDT_PARSE_TOKEN_RB);
-}
-       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++; 
-  SHOW_WHERE;
-  return(GRAS_DDT_PARSE_TOKEN_LP);
-}
-       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++;
-  SHOW_WHERE;
-  return(GRAS_DDT_PARSE_TOKEN_RP);
-}
-       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++;
-  SHOW_WHERE;
-  return(GRAS_DDT_PARSE_TOKEN_STAR);
-}
-       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++;
-  SHOW_WHERE;
-  return(GRAS_DDT_PARSE_TOKEN_SEMI_COLON);
-}
-       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++;
-  SHOW_WHERE;
-  return(GRAS_DDT_PARSE_TOKEN_COLON);
-}
-       YY_BREAK
-case 24:
+        YY_RULE_SETUP {
+        ++gras_ddt_parse_line_pos;
+        gras_ddt_parse_col_pos = 0;
+        gras_ddt_parse_char_pos++;
+      } YY_BREAK case 13:YY_RULE_SETUP {
+        gras_ddt_parse_char_pos += strlen(gras_ddt_parse_text);
+        gras_ddt_parse_col_pos += strlen(gras_ddt_parse_text);
+        BEGIN(comment_caller);
+      } YY_BREAK case 14:YY_RULE_SETUP {
+   /****************** STATEMENTS ************************/
+        gras_ddt_parse_char_pos += strlen(gras_ddt_parse_text);
+        gras_ddt_parse_col_pos += strlen(gras_ddt_parse_text);
+        SHOW_WHERE;
+        return (GRAS_DDT_PARSE_TOKEN_WORD);
+      } YY_BREAK case 15:YY_RULE_SETUP {
+        gras_ddt_parse_char_pos++;
+        gras_ddt_parse_col_pos++;
+        SHOW_WHERE;
+        return (GRAS_DDT_PARSE_TOKEN_LA);
+      } YY_BREAK case 16:YY_RULE_SETUP {
+        gras_ddt_parse_char_pos++;
+        gras_ddt_parse_col_pos++;
+        SHOW_WHERE;
+        return (GRAS_DDT_PARSE_TOKEN_RA);
+      } YY_BREAK case 17:YY_RULE_SETUP {
+        gras_ddt_parse_char_pos++;
+        gras_ddt_parse_col_pos++;
+        SHOW_WHERE;
+        return (GRAS_DDT_PARSE_TOKEN_LB);
+      } YY_BREAK case 18:YY_RULE_SETUP {
+        gras_ddt_parse_char_pos++;
+        gras_ddt_parse_col_pos++;
+        SHOW_WHERE;
+        return (GRAS_DDT_PARSE_TOKEN_RB);
+      } YY_BREAK case 19:YY_RULE_SETUP {
+        gras_ddt_parse_char_pos++;
+        gras_ddt_parse_col_pos++;
+        SHOW_WHERE;
+        return (GRAS_DDT_PARSE_TOKEN_LP);
+      } YY_BREAK case 20:YY_RULE_SETUP {
+        gras_ddt_parse_char_pos++;
+        gras_ddt_parse_col_pos++;
+        SHOW_WHERE;
+        return (GRAS_DDT_PARSE_TOKEN_RP);
+      } YY_BREAK case 21:YY_RULE_SETUP {
+        gras_ddt_parse_char_pos++;
+        gras_ddt_parse_col_pos++;
+        SHOW_WHERE;
+        return (GRAS_DDT_PARSE_TOKEN_STAR);
+      } YY_BREAK case 22:YY_RULE_SETUP {
+        gras_ddt_parse_char_pos++;
+        gras_ddt_parse_col_pos++;
+        SHOW_WHERE;
+        return (GRAS_DDT_PARSE_TOKEN_SEMI_COLON);
+      } YY_BREAK case 23:YY_RULE_SETUP {
+        gras_ddt_parse_char_pos++;
+        gras_ddt_parse_col_pos++;
+        SHOW_WHERE;
+        return (GRAS_DDT_PARSE_TOKEN_COLON);
+      } YY_BREAK 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++;
- gras_ddt_parse_col_pos=0;
-  SHOW_WHERE;
-}
-       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++;
-  SHOW_WHERE;
-}
-       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):
-case YY_STATE_EOF(foo):
-       yyterminate();
-
-       case YY_END_OF_BUFFER:
-               {
-               /* Amount of text matched not including the EOB char. */
-               int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
-
-               /* Undo the effects of YY_DO_BEFORE_ACTION. */
-               *yy_cp = (yy_hold_char);
-               YY_RESTORE_YY_MORE_OFFSET
-
-               if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
-                       {
-                       /* We're scanning a new file or input source.  It's
-                        * possible that this happened because the user
-                        * just pointed gras_ddt_parse_in at a new source and called
-                        * gras_ddt_parse_lex().  If so, then we have to assure
-                        * consistency between YY_CURRENT_BUFFER and our
-                        * globals.  Here is the right place to do so, because
-                        * this is the first action (other than possibly a
-                        * back-up) that will match for the new input source.
-                        */
-                       (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
-                       YY_CURRENT_BUFFER_LVALUE->yy_input_file = gras_ddt_parse_in;
-                       YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
-                       }
-
-               /* Note that here we test for yy_c_buf_p "<=" to the position
-                * of the first EOB in the buffer, since yy_c_buf_p will
-                * already have been incremented past the NUL character
-                * (since all states make transitions on EOB to the
-                * end-of-buffer state).  Contrast this with the test
-                * in input().
-                */
-               if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
-                       { /* This was really a NUL. */
-                       yy_state_type yy_next_state;
-
-                       (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
-
-                       yy_current_state = yy_get_previous_state(  );
-
-                       /* Okay, we're now positioned to make the NUL
-                        * transition.  We couldn't have
-                        * yy_get_previous_state() go ahead and do it
-                        * for us because it doesn't know how to deal
-                        * with the possibility of jamming (and we don't
-                        * want to build jamming into it because then it
-                        * will run more slowly).
-                        */
-
-                       yy_next_state = yy_try_NUL_trans( yy_current_state );
-
-                       yy_bp = (yytext_ptr) + YY_MORE_ADJ;
-
-                       if ( yy_next_state )
-                               {
-                               /* Consume the NUL. */
-                               yy_cp = ++(yy_c_buf_p);
-                               yy_current_state = yy_next_state;
-                               goto yy_match;
-                               }
-
-                       else
-                               {
-                               yy_cp = (yy_c_buf_p);
-                               goto yy_find_action;
-                               }
-                       }
-
-               else switch ( yy_get_next_buffer(  ) )
-                       {
-                       case EOB_ACT_END_OF_FILE:
-                               {
-                               (yy_did_buffer_switch_on_eof) = 0;
-
-                               if ( gras_ddt_parse_wrap( ) )
-                                       {
-                                       /* Note: because we've taken care in
-                                        * yy_get_next_buffer() to have set up
-                                        * gras_ddt_parse_text, we can now set up
-                                        * yy_c_buf_p so that if some total
-                                        * hoser (like flex itself) wants to
-                                        * call the scanner after we return the
-                                        * YY_NULL, it'll still work - another
-                                        * YY_NULL will get returned.
-                                        */
-                                       (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
-
-                                       yy_act = YY_STATE_EOF(YY_START);
-                                       goto do_action;
-                                       }
-
-                               else
-                                       {
-                                       if ( ! (yy_did_buffer_switch_on_eof) )
-                                               YY_NEW_FILE;
-                                       }
-                               break;
-                               }
-
-                       case EOB_ACT_CONTINUE_SCAN:
-                               (yy_c_buf_p) =
-                                       (yytext_ptr) + yy_amount_of_matched_text;
-
-                               yy_current_state = yy_get_previous_state(  );
-
-                               yy_cp = (yy_c_buf_p);
-                               yy_bp = (yytext_ptr) + YY_MORE_ADJ;
-                               goto yy_match;
-
-                       case EOB_ACT_LAST_MATCH:
-                               (yy_c_buf_p) =
-                               &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
-
-                               yy_current_state = yy_get_previous_state(  );
-
-                               yy_cp = (yy_c_buf_p);
-                               yy_bp = (yytext_ptr) + YY_MORE_ADJ;
-                               goto yy_find_action;
-                       }
-               break;
-               }
-
-       default:
-               YY_FATAL_ERROR(
-                       "fatal flex scanner internal error--no action found" );
-       } /* end of action switch */
-               } /* end of scanning one token */
-} /* end of gras_ddt_parse_lex */
+        YY_RULE_SETUP {
+        gras_ddt_parse_line_pos++;
+        gras_ddt_parse_char_pos++;
+        gras_ddt_parse_col_pos = 0;
+        SHOW_WHERE;
+      } YY_BREAK case 25:YY_RULE_SETUP {
+        gras_ddt_parse_char_pos++;
+        gras_ddt_parse_col_pos++;
+        SHOW_WHERE;
+      } YY_BREAK case 26:YY_RULE_SETUP ECHO;
+      YY_BREAK case YY_STATE_EOF(INITIAL):case YY_STATE_EOF(annotate):case
+        YY_STATE_EOF(comment):case YY_STATE_EOF(foo):yyterminate();
+
+    case YY_END_OF_BUFFER:
+      {
+        /* Amount of text matched not including the EOB char. */
+        int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
+
+        /* Undo the effects of YY_DO_BEFORE_ACTION. */
+        *yy_cp = (yy_hold_char);
+        YY_RESTORE_YY_MORE_OFFSET
+          if (YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW) {
+          /* We're scanning a new file or input source.  It's
+           * possible that this happened because the user
+           * just pointed gras_ddt_parse_in at a new source and called
+           * gras_ddt_parse_lex().  If so, then we have to assure
+           * consistency between YY_CURRENT_BUFFER and our
+           * globals.  Here is the right place to do so, because
+           * this is the first action (other than possibly a
+           * back-up) that will match for the new input source.
+           */
+          (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+          YY_CURRENT_BUFFER_LVALUE->yy_input_file = gras_ddt_parse_in;
+          YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
+        }
+
+        /* Note that here we test for yy_c_buf_p "<=" to the position
+         * of the first EOB in the buffer, since yy_c_buf_p will
+         * already have been incremented past the NUL character
+         * (since all states make transitions on EOB to the
+         * end-of-buffer state).  Contrast this with the test
+         * in input().
+         */
+        if ((yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]) {       /* This was really a NUL. */
+          yy_state_type yy_next_state;
+
+          (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
+
+          yy_current_state = yy_get_previous_state();
+
+          /* Okay, we're now positioned to make the NUL
+           * transition.  We couldn't have
+           * yy_get_previous_state() go ahead and do it
+           * for us because it doesn't know how to deal
+           * with the possibility of jamming (and we don't
+           * want to build jamming into it because then it
+           * will run more slowly).
+           */
+
+          yy_next_state = yy_try_NUL_trans(yy_current_state);
+
+          yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+
+          if (yy_next_state) {
+            /* Consume the NUL. */
+            yy_cp = ++(yy_c_buf_p);
+            yy_current_state = yy_next_state;
+            goto yy_match;
+          }
+
+          else {
+            yy_cp = (yy_c_buf_p);
+            goto yy_find_action;
+          }
+        }
+
+        else
+          switch (yy_get_next_buffer()) {
+          case EOB_ACT_END_OF_FILE:
+            {
+              (yy_did_buffer_switch_on_eof) = 0;
+
+              if (gras_ddt_parse_wrap()) {
+                /* Note: because we've taken care in
+                 * yy_get_next_buffer() to have set up
+                 * gras_ddt_parse_text, we can now set up
+                 * yy_c_buf_p so that if some total
+                 * hoser (like flex itself) wants to
+                 * call the scanner after we return the
+                 * YY_NULL, it'll still work - another
+                 * YY_NULL will get returned.
+                 */
+                (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
+
+                yy_act = YY_STATE_EOF(YY_START);
+                goto do_action;
+              }
+
+              else {
+                if (!(yy_did_buffer_switch_on_eof))
+                  YY_NEW_FILE;
+              }
+              break;
+            }
+
+          case EOB_ACT_CONTINUE_SCAN:
+            (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
+
+            yy_current_state = yy_get_previous_state();
+
+            yy_cp = (yy_c_buf_p);
+            yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+            goto yy_match;
+
+          case EOB_ACT_LAST_MATCH:
+            (yy_c_buf_p) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
+
+            yy_current_state = yy_get_previous_state();
+
+            yy_cp = (yy_c_buf_p);
+            yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+            goto yy_find_action;
+          }
+        break;
+      }
+
+    default:
+      YY_FATAL_ERROR("fatal flex scanner internal error--no action found");
+    }                           /* end of action switch */
+  }                             /* end of scanning one token */
+}                               /* end of gras_ddt_parse_lex */
 
 /* yy_get_next_buffer - try to read in a new buffer
  *
@@ -1125,157 +1023,154 @@ case YY_STATE_EOF(foo):
  *     EOB_ACT_CONTINUE_SCAN - continue scanning from current position
  *     EOB_ACT_END_OF_FILE - end of file
  */
-static int yy_get_next_buffer (void)
+static int yy_get_next_buffer(void)
 {
-       register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
-       register char *source = (yytext_ptr);
-       register int number_to_move, i;
-       int ret_val;
-
-       if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
-               YY_FATAL_ERROR(
-               "fatal flex scanner internal error--end of buffer missed" );
-
-       if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
-               { /* Don't try to fill the buffer, so this is an EOF. */
-               if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
-                       {
-                       /* We matched a single character, the EOB, so
-                        * treat this as a final EOF.
-                        */
-                       return EOB_ACT_END_OF_FILE;
-                       }
-
-               else
-                       {
-                       /* We matched some text prior to the EOB, first
-                        * process it.
-                        */
-                       return EOB_ACT_LAST_MATCH;
-                       }
-               }
-
-       /* Try to read more data. */
-
-       /* First move last chars to start of buffer. */
-       number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
-
-       for ( i = 0; i < number_to_move; ++i )
-               *(dest++) = *(source++);
-
-       if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
-               /* don't do the read, it's not guaranteed to return an EOF,
-                * just force an EOF
-                */
-               YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
-
-       else
-               {
-                       size_t num_to_read =
-                       YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
-
-               while ( num_to_read <= 0 )
-                       { /* Not enough room in the buffer - grow it. */
-
-                       /* just a shorter name for the current buffer */
-                       YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
-
-                       int yy_c_buf_p_offset =
-                               (int) ((yy_c_buf_p) - b->yy_ch_buf);
-
-                       if ( b->yy_is_our_buffer )
-                               {
-                               int new_size = b->yy_buf_size * 2;
-
-                               if ( new_size <= 0 )
-                                       b->yy_buf_size += b->yy_buf_size / 8;
-                               else
-                                       b->yy_buf_size *= 2;
-
-                               b->yy_ch_buf = (char *)
-                                       /* Include room in for 2 EOB chars. */
-                                       gras_ddt_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
-                               }
-                       else
-                               /* Can't grow it, we don't own it. */
-                               b->yy_ch_buf = 0;
-
-                       if ( ! b->yy_ch_buf )
-                               YY_FATAL_ERROR(
-                               "fatal error - scanner input buffer overflow" );
-
-                       (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
-
-                       num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
-                                               number_to_move - 1;
-
-                       }
-
-               if ( num_to_read > YY_READ_BUF_SIZE )
-                       num_to_read = YY_READ_BUF_SIZE;
-
-               /* Read in more data. */
-               YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
-                       (yy_n_chars), num_to_read );
-
-               YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
-               }
-
-       if ( (yy_n_chars) == 0 )
-               {
-               if ( number_to_move == YY_MORE_ADJ )
-                       {
-                       ret_val = EOB_ACT_END_OF_FILE;
-                       gras_ddt_parse_restart(gras_ddt_parse_in  );
-                       }
-
-               else
-                       {
-                       ret_val = EOB_ACT_LAST_MATCH;
-                       YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
-                               YY_BUFFER_EOF_PENDING;
-                       }
-               }
-
-       else
-               ret_val = EOB_ACT_CONTINUE_SCAN;
-
-       (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;
-
-       (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
+  register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
+  register char *source = (yytext_ptr);
+  register int number_to_move, i;
+  int ret_val;
+
+  if ((yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1])
+    YY_FATAL_ERROR("fatal flex scanner internal error--end of buffer missed");
+
+  if (YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0) {  /* Don't try to fill the buffer, so this is an EOF. */
+    if ((yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1) {
+      /* We matched a single character, the EOB, so
+       * treat this as a final EOF.
+       */
+      return EOB_ACT_END_OF_FILE;
+    }
+
+    else {
+      /* We matched some text prior to the EOB, first
+       * process it.
+       */
+      return EOB_ACT_LAST_MATCH;
+    }
+  }
+
+  /* Try to read more data. */
+
+  /* First move last chars to start of buffer. */
+  number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
+
+  for (i = 0; i < number_to_move; ++i)
+    *(dest++) = *(source++);
+
+  if (YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING)
+    /* don't do the read, it's not guaranteed to return an EOF,
+     * just force an EOF
+     */
+    YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
+
+  else {
+    int num_to_read =
+      YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
+
+    while (num_to_read <= 0) {  /* Not enough room in the buffer - grow it. */
+
+      /* just a shorter name for the current buffer */
+      YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
+
+      int yy_c_buf_p_offset = (int) ((yy_c_buf_p) - b->yy_ch_buf);
+
+      if (b->yy_is_our_buffer) {
+        int new_size = b->yy_buf_size * 2;
+
+        if (new_size <= 0)
+          b->yy_buf_size += b->yy_buf_size / 8;
+        else
+          b->yy_buf_size *= 2;
+
+        b->yy_ch_buf = (char *)
+          /* Include room in for 2 EOB chars. */
+          gras_ddt_parse_realloc((void *) b->yy_ch_buf, b->yy_buf_size + 2);
+      } else
+        /* Can't grow it, we don't own it. */
+        b->yy_ch_buf = 0;
+
+      if (!b->yy_ch_buf)
+        YY_FATAL_ERROR("fatal error - scanner input buffer overflow");
+
+      (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
+
+      num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
+        number_to_move - 1;
+
+    }
+
+    if (num_to_read > YY_READ_BUF_SIZE)
+      num_to_read = YY_READ_BUF_SIZE;
+
+    /* Read in more data. */
+    YY_INPUT((&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
+             (yy_n_chars), (size_t) num_to_read);
+
+    YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+  }
 
-       return ret_val;
+  if ((yy_n_chars) == 0) {
+    if (number_to_move == YY_MORE_ADJ) {
+      ret_val = EOB_ACT_END_OF_FILE;
+      gras_ddt_parse_restart(gras_ddt_parse_in);
+    }
+
+    else {
+      ret_val = EOB_ACT_LAST_MATCH;
+      YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_EOF_PENDING;
+    }
+  }
+
+  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;
+
+  (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
+
+  return ret_val;
 }
 
 /* yy_get_previous_state - get the state just before the EOB char was reached */
 
-    static yy_state_type yy_get_previous_state (void)
+static yy_state_type yy_get_previous_state(void)
 {
-       register yy_state_type yy_current_state;
-       register char *yy_cp;
-    
-       yy_current_state = (yy_start);
-
-       for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
-               {
-               register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
-               if ( yy_accept[yy_current_state] )
-                       {
-                       (yy_last_accepting_state) = yy_current_state;
-                       (yy_last_accepting_cpos) = yy_cp;
-                       }
-               while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
-                       {
-                       yy_current_state = (int) yy_def[yy_current_state];
-                       if ( yy_current_state >= 61 )
-                               yy_c = yy_meta[(unsigned int) yy_c];
-                       }
-               yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-               }
-
-       return yy_current_state;
+  register yy_state_type yy_current_state;
+  register char *yy_cp;
+
+  yy_current_state = (yy_start);
+
+  for (yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp) {
+    register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
+    if (yy_accept[yy_current_state]) {
+      (yy_last_accepting_state) = yy_current_state;
+      (yy_last_accepting_cpos) = yy_cp;
+    }
+    while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state) {
+      yy_current_state = (int) yy_def[yy_current_state];
+      if (yy_current_state >= 61)
+        yy_c = yy_meta[(unsigned int) yy_c];
+    }
+    yy_current_state =
+      yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
+  }
+
+  return yy_current_state;
 }
 
 /* yy_try_NUL_trans - try to make a transition on the NUL character
@@ -1283,199 +1178,190 @@ static int yy_get_next_buffer (void)
  * synopsis
  *     next_state = yy_try_NUL_trans( current_state );
  */
-    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
+static yy_state_type yy_try_NUL_trans(yy_state_type yy_current_state)
 {
-       register int yy_is_jam;
-       register char *yy_cp = (yy_c_buf_p);
-
-       register YY_CHAR yy_c = 1;
-       if ( yy_accept[yy_current_state] )
-               {
-               (yy_last_accepting_state) = yy_current_state;
-               (yy_last_accepting_cpos) = yy_cp;
-               }
-       while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
-               {
-               yy_current_state = (int) yy_def[yy_current_state];
-               if ( yy_current_state >= 61 )
-                       yy_c = yy_meta[(unsigned int) yy_c];
-               }
-       yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-       yy_is_jam = (yy_current_state == 60);
-
-       return yy_is_jam ? 0 : yy_current_state;
+  register int yy_is_jam;
+  register char *yy_cp = (yy_c_buf_p);
+
+  register YY_CHAR yy_c = 1;
+  if (yy_accept[yy_current_state]) {
+    (yy_last_accepting_state) = yy_current_state;
+    (yy_last_accepting_cpos) = yy_cp;
+  }
+  while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state) {
+    yy_current_state = (int) yy_def[yy_current_state];
+    if (yy_current_state >= 61)
+      yy_c = yy_meta[(unsigned int) yy_c];
+  }
+  yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
+  yy_is_jam = (yy_current_state == 60);
+
+  return yy_is_jam ? 0 : yy_current_state;
 }
 
-    static void yyunput (int c, register char * yy_bp )
+static void yyunput(int c, register char *yy_bp)
 {
-       register char *yy_cp;
-    
-    yy_cp = (yy_c_buf_p);
+  register char *yy_cp;
 
-       /* undo effects of setting up gras_ddt_parse_text */
-       *yy_cp = (yy_hold_char);
+  yy_cp = (yy_c_buf_p);
 
-       if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
-               { /* need to shift things up to make room */
-               /* +2 for EOB chars. */
-               register int number_to_move = (yy_n_chars) + 2;
-               register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
-                                       YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
-               register char *source =
-                               &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
+  /* undo effects of setting up gras_ddt_parse_text */
+  *yy_cp = (yy_hold_char);
 
-               while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
-                       *--dest = *--source;
+  if (yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2) {        /* need to shift things up to make room */
+    /* +2 for EOB chars. */
+    register int number_to_move = (yy_n_chars) + 2;
+    register char *dest =
+      &YY_CURRENT_BUFFER_LVALUE->
+      yy_ch_buf[YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
+    register char *source =
+      &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
 
-               yy_cp += (int) (dest - source);
-               yy_bp += (int) (dest - source);
-               YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
-                       (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
+    while (source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf)
+      *--dest = *--source;
 
-               if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
-                       YY_FATAL_ERROR( "flex scanner push-back overflow" );
-               }
+    yy_cp += (int) (dest - source);
+    yy_bp += (int) (dest - source);
+    YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
+      (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
 
-       *--yy_cp = (char) c;
+    if (yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2)
+      YY_FATAL_ERROR("flex scanner push-back overflow");
+  }
 
-       (yytext_ptr) = yy_bp;
-       (yy_hold_char) = *yy_cp;
-       (yy_c_buf_p) = yy_cp;
+  *--yy_cp = (char) c;
+
+  (yytext_ptr) = yy_bp;
+  (yy_hold_char) = *yy_cp;
+  (yy_c_buf_p) = yy_cp;
 }
 
 #ifndef YY_NO_INPUT
 #ifdef __cplusplus
-    static int yyinput (void)
+static int yyinput(void)
 #else
-    static int input  (void)
+static int input(void)
 #endif
-
 {
-       int c;
-    
-       *(yy_c_buf_p) = (yy_hold_char);
-
-       if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
-               {
-               /* yy_c_buf_p now points to the character we want to return.
-                * If this occurs *before* the EOB characters, then it's a
-                * valid NUL; if not, then we've hit the end of the buffer.
-                */
-               if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
-                       /* This was really a NUL. */
-                       *(yy_c_buf_p) = '\0';
-
-               else
-                       { /* need more input */
-                       int offset = (yy_c_buf_p) - (yytext_ptr);
-                       ++(yy_c_buf_p);
-
-                       switch ( yy_get_next_buffer(  ) )
-                               {
-                               case EOB_ACT_LAST_MATCH:
-                                       /* This happens because yy_g_n_b()
-                                        * sees that we've accumulated a
-                                        * token and flags that we need to
-                                        * try matching the token before
-                                        * proceeding.  But for input(),
-                                        * there's no matching to consider.
-                                        * So convert the EOB_ACT_LAST_MATCH
-                                        * to EOB_ACT_END_OF_FILE.
-                                        */
-
-                                       /* Reset buffer status. */
-                                       gras_ddt_parse_restart(gras_ddt_parse_in );
-
-                                       /*FALLTHROUGH*/
-
-                               case EOB_ACT_END_OF_FILE:
-                                       {
-                                       if ( gras_ddt_parse_wrap( ) )
-                                               return EOF;
-
-                                       if ( ! (yy_did_buffer_switch_on_eof) )
-                                               YY_NEW_FILE;
+  int c;
+
+  *(yy_c_buf_p) = (yy_hold_char);
+
+  if (*(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR) {
+    /* yy_c_buf_p now points to the character we want to return.
+     * If this occurs *before* the EOB characters, then it's a
+     * valid NUL; if not, then we've hit the end of the buffer.
+     */
+    if ((yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)])
+      /* This was really a NUL. */
+      *(yy_c_buf_p) = '\0';
+
+    else {                      /* need more input */
+      int offset = (yy_c_buf_p) - (yytext_ptr);
+      ++(yy_c_buf_p);
+
+      switch (yy_get_next_buffer()) {
+      case EOB_ACT_LAST_MATCH:
+        /* This happens because yy_g_n_b()
+         * sees that we've accumulated a
+         * token and flags that we need to
+         * try matching the token before
+         * proceeding.  But for input(),
+         * there's no matching to consider.
+         * So convert the EOB_ACT_LAST_MATCH
+         * to EOB_ACT_END_OF_FILE.
+         */
+
+        /* Reset buffer status. */
+        gras_ddt_parse_restart(gras_ddt_parse_in);
+
+       /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE:
+        {
+          if (gras_ddt_parse_wrap())
+            return EOF;
+
+          if (!(yy_did_buffer_switch_on_eof))
+            YY_NEW_FILE;
 #ifdef __cplusplus
-                                       return yyinput();
+          return yyinput();
 #else
-                                       return input();
+          return input();
 #endif
-                                       }
+        }
 
-                               case EOB_ACT_CONTINUE_SCAN:
-                                       (yy_c_buf_p) = (yytext_ptr) + offset;
-                                       break;
-                               }
-                       }
-               }
+      case EOB_ACT_CONTINUE_SCAN:
+        (yy_c_buf_p) = (yytext_ptr) + offset;
+        break;
+      }
+    }
+  }
 
-       c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
-       *(yy_c_buf_p) = '\0';   /* preserve gras_ddt_parse_text */
-       (yy_hold_char) = *++(yy_c_buf_p);
+  c = *(unsigned char *) (yy_c_buf_p);  /* cast for 8-bit char's */
+  *(yy_c_buf_p) = '\0';         /* preserve gras_ddt_parse_text */
+  (yy_hold_char) = *++(yy_c_buf_p);
 
-       return c;
+  return c;
 }
-#endif /* ifndef YY_NO_INPUT */
+#endif /* ifndef YY_NO_INPUT */
 
 /** Immediately switch to a different input stream.
  * @param input_file A readable stream.
  * 
  * @note This function does not reset the start condition to @c INITIAL .
  */
-    void gras_ddt_parse_restart  (FILE * input_file )
+void gras_ddt_parse_restart(FILE * input_file)
 {
-    
-       if ( ! YY_CURRENT_BUFFER ){
-        gras_ddt_parse_ensure_buffer_stack ();
-               YY_CURRENT_BUFFER_LVALUE =
-            gras_ddt_parse__create_buffer(gras_ddt_parse_in,YY_BUF_SIZE );
-       }
 
-       gras_ddt_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
-       gras_ddt_parse__load_buffer_state( );
+  if (!YY_CURRENT_BUFFER) {
+    gras_ddt_parse_ensure_buffer_stack();
+    YY_CURRENT_BUFFER_LVALUE =
+      gras_ddt_parse__create_buffer(gras_ddt_parse_in, YY_BUF_SIZE);
+  }
+
+  gras_ddt_parse__init_buffer(YY_CURRENT_BUFFER, input_file);
+  gras_ddt_parse__load_buffer_state();
 }
 
 /** Switch to a different input buffer.
  * @param new_buffer The new input buffer.
  * 
  */
-    void gras_ddt_parse__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
+void gras_ddt_parse__switch_to_buffer(YY_BUFFER_STATE new_buffer)
 {
-    
-       /* TODO. We should be able to replace this entire function body
-        * with
-        *              gras_ddt_parse_pop_buffer_state();
-        *              gras_ddt_parse_push_buffer_state(new_buffer);
-     */
-       gras_ddt_parse_ensure_buffer_stack ();
-       if ( YY_CURRENT_BUFFER == new_buffer )
-               return;
-
-       if ( YY_CURRENT_BUFFER )
-               {
-               /* Flush out information for old buffer. */
-               *(yy_c_buf_p) = (yy_hold_char);
-               YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
-               YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
-               }
-
-       YY_CURRENT_BUFFER_LVALUE = new_buffer;
-       gras_ddt_parse__load_buffer_state( );
-
-       /* We don't actually know whether we did this switch during
-        * EOF (gras_ddt_parse_wrap()) processing, but the only time this flag
-        * is looked at is after gras_ddt_parse_wrap() is called, so it's safe
-        * to go ahead and always set it.
-        */
-       (yy_did_buffer_switch_on_eof) = 1;
+
+  /* TODO. We should be able to replace this entire function body
+   * with
+   *              gras_ddt_parse_pop_buffer_state();
+   *              gras_ddt_parse_push_buffer_state(new_buffer);
+   */
+  gras_ddt_parse_ensure_buffer_stack();
+  if (YY_CURRENT_BUFFER == new_buffer)
+    return;
+
+  if (YY_CURRENT_BUFFER) {
+    /* Flush out information for old buffer. */
+    *(yy_c_buf_p) = (yy_hold_char);
+    YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+    YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+  }
+
+  YY_CURRENT_BUFFER_LVALUE = new_buffer;
+  gras_ddt_parse__load_buffer_state();
+
+  /* We don't actually know whether we did this switch during
+   * EOF (gras_ddt_parse_wrap()) processing, but the only time this flag
+   * is looked at is after gras_ddt_parse_wrap() is called, so it's safe
+   * to go ahead and always set it.
+   */
+  (yy_did_buffer_switch_on_eof) = 1;
 }
 
-static void gras_ddt_parse__load_buffer_state  (void)
+static void gras_ddt_parse__load_buffer_state(void)
 {
-       (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
-       (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
-       gras_ddt_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
-       (yy_hold_char) = *(yy_c_buf_p);
+  (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+  (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
+  gras_ddt_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
+  (yy_hold_char) = *(yy_c_buf_p);
 }
 
 /** Allocate and initialize an input buffer state.
@@ -1484,106 +1370,107 @@ static void gras_ddt_parse__load_buffer_state  (void)
  * 
  * @return the allocated buffer state.
  */
-    YY_BUFFER_STATE gras_ddt_parse__create_buffer  (FILE * file, int  size )
+YY_BUFFER_STATE gras_ddt_parse__create_buffer(FILE * file, int size)
 {
-       YY_BUFFER_STATE b;
-    
-       b = (YY_BUFFER_STATE) gras_ddt_parse_alloc(sizeof( struct yy_buffer_state )  );
-       if ( ! b )
-               YY_FATAL_ERROR( "out of dynamic memory in gras_ddt_parse__create_buffer()" );
+  YY_BUFFER_STATE b;
 
-       b->yy_buf_size = size;
+  b = (YY_BUFFER_STATE) gras_ddt_parse_alloc(sizeof(struct yy_buffer_state));
+  if (!b)
+    YY_FATAL_ERROR
+      ("out of dynamic memory in gras_ddt_parse__create_buffer()");
 
-       /* yy_ch_buf has to be 2 characters longer than the size given because
-        * we need to put in 2 end-of-buffer characters.
-        */
-       b->yy_ch_buf = (char *) gras_ddt_parse_alloc(b->yy_buf_size + 2  );
-       if ( ! b->yy_ch_buf )
-               YY_FATAL_ERROR( "out of dynamic memory in gras_ddt_parse__create_buffer()" );
+  b->yy_buf_size = size;
 
-       b->yy_is_our_buffer = 1;
+  /* yy_ch_buf has to be 2 characters longer than the size given because
+   * we need to put in 2 end-of-buffer characters.
+   */
+  b->yy_ch_buf = (char *) gras_ddt_parse_alloc(b->yy_buf_size + 2);
+  if (!b->yy_ch_buf)
+    YY_FATAL_ERROR
+      ("out of dynamic memory in gras_ddt_parse__create_buffer()");
 
-       gras_ddt_parse__init_buffer(b,file );
+  b->yy_is_our_buffer = 1;
 
-       return b;
+  gras_ddt_parse__init_buffer(b, file);
+
+  return b;
 }
 
 /** Destroy the buffer.
  * @param b a buffer created with gras_ddt_parse__create_buffer()
  * 
  */
-    void gras_ddt_parse__delete_buffer (YY_BUFFER_STATE  b )
+void gras_ddt_parse__delete_buffer(YY_BUFFER_STATE b)
 {
-    
-       if ( ! b )
-               return;
 
-       if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
-               YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
+  if (!b)
+    return;
+
+  if (b == YY_CURRENT_BUFFER)   /* Not sure if we should pop here. */
+    YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
 
-       if ( b->yy_is_our_buffer )
-               gras_ddt_parse_free((void *) b->yy_ch_buf  );
+  if (b->yy_is_our_buffer)
+    gras_ddt_parse_free((void *) b->yy_ch_buf);
 
-       gras_ddt_parse_free((void *) b  );
+  gras_ddt_parse_free((void *) b);
 }
 
-#ifndef __cplusplus
-extern int isatty (int );
+#if !defined(__cplusplus) && !defined(WIN32)
+extern int isatty(int);
 #endif /* __cplusplus */
-    
+
 /* Initializes or reinitializes a buffer.
  * This function is sometimes called more than once on the same buffer,
  * such as during a gras_ddt_parse_restart() or at EOF.
  */
-    static void gras_ddt_parse__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
-
+static void gras_ddt_parse__init_buffer(YY_BUFFER_STATE b, FILE * file)
 {
-       int oerrno = errno;
-    
-       gras_ddt_parse__flush_buffer(b );
+  int oerrno = errno;
 
-       b->yy_input_file = file;
-       b->yy_fill_buffer = 1;
+  gras_ddt_parse__flush_buffer(b);
 
-    /* If b is the current buffer, then gras_ddt_parse__init_buffer was _probably_
-     * called from gras_ddt_parse_restart() or through yy_get_next_buffer.
-     * In that case, we don't want to reset the lineno or column.
-     */
-    if (b != YY_CURRENT_BUFFER){
-        b->yy_bs_lineno = 1;
-        b->yy_bs_column = 0;
-    }
+  b->yy_input_file = file;
+  b->yy_fill_buffer = 1;
 
-        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
-    
-       errno = oerrno;
+  /* If b is the current buffer, then gras_ddt_parse__init_buffer was _probably_
+   * called from gras_ddt_parse_restart() or through yy_get_next_buffer.
+   * In that case, we don't want to reset the lineno or column.
+   */
+  if (b != YY_CURRENT_BUFFER) {
+    b->yy_bs_lineno = 1;
+    b->yy_bs_column = 0;
+  }
+
+  b->yy_is_interactive = file ? (isatty(fileno(file)) > 0) : 0;
+
+  errno = oerrno;
 }
 
 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
  * 
  */
-    void gras_ddt_parse__flush_buffer (YY_BUFFER_STATE  b )
+void gras_ddt_parse__flush_buffer(YY_BUFFER_STATE b)
 {
-       if ( ! b )
-               return;
+  if (!b)
+    return;
 
-       b->yy_n_chars = 0;
+  b->yy_n_chars = 0;
 
-       /* We always need two end-of-buffer characters.  The first causes
-        * a transition to the end-of-buffer state.  The second causes
-        * a jam in that state.
-        */
-       b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
-       b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
+  /* We always need two end-of-buffer characters.  The first causes
+   * a transition to the end-of-buffer state.  The second causes
+   * a jam in that state.
+   */
+  b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
+  b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
 
-       b->yy_buf_pos = &b->yy_ch_buf[0];
+  b->yy_buf_pos = &b->yy_ch_buf[0];
 
-       b->yy_at_bol = 1;
-       b->yy_buffer_status = YY_BUFFER_NEW;
+  b->yy_at_bol = 1;
+  b->yy_buffer_status = YY_BUFFER_NEW;
 
-       if ( b == YY_CURRENT_BUFFER )
-               gras_ddt_parse__load_buffer_state( );
+  if (b == YY_CURRENT_BUFFER)
+    gras_ddt_parse__load_buffer_state();
 }
 
 /** Pushes the new state onto the stack. The new state becomes
@@ -1592,92 +1479,98 @@ extern int isatty (int );
  *  @param new_buffer The new state.
  *  
  */
-void gras_ddt_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
+void gras_ddt_parse_push_buffer_state(YY_BUFFER_STATE new_buffer)
 {
-       if (new_buffer == NULL)
-               return;
-
-       gras_ddt_parse_ensure_buffer_stack();
-
-       /* This block is copied from gras_ddt_parse__switch_to_buffer. */
-       if ( YY_CURRENT_BUFFER )
-               {
-               /* Flush out information for old buffer. */
-               *(yy_c_buf_p) = (yy_hold_char);
-               YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
-               YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
-               }
-
-       /* Only push if top exists. Otherwise, replace top. */
-       if (YY_CURRENT_BUFFER)
-               (yy_buffer_stack_top)++;
-       YY_CURRENT_BUFFER_LVALUE = new_buffer;
-
-       /* copied from gras_ddt_parse__switch_to_buffer. */
-       gras_ddt_parse__load_buffer_state( );
-       (yy_did_buffer_switch_on_eof) = 1;
+  if (new_buffer == NULL)
+    return;
+
+  gras_ddt_parse_ensure_buffer_stack();
+
+  /* This block is copied from gras_ddt_parse__switch_to_buffer. */
+  if (YY_CURRENT_BUFFER) {
+    /* Flush out information for old buffer. */
+    *(yy_c_buf_p) = (yy_hold_char);
+    YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+    YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+  }
+
+  /* Only push if top exists. Otherwise, replace top. */
+  if (YY_CURRENT_BUFFER)
+    (yy_buffer_stack_top)++;
+  YY_CURRENT_BUFFER_LVALUE = new_buffer;
+
+  /* copied from gras_ddt_parse__switch_to_buffer. */
+  gras_ddt_parse__load_buffer_state();
+  (yy_did_buffer_switch_on_eof) = 1;
 }
 
 /** Removes and deletes the top of the stack, if present.
  *  The next element becomes the new top.
  *  
  */
-void gras_ddt_parse_pop_buffer_state (void)
+void gras_ddt_parse_pop_buffer_state(void)
 {
-       if (!YY_CURRENT_BUFFER)
-               return;
+  if (!YY_CURRENT_BUFFER)
+    return;
 
-       gras_ddt_parse__delete_buffer(YY_CURRENT_BUFFER );
-       YY_CURRENT_BUFFER_LVALUE = NULL;
-       if ((yy_buffer_stack_top) > 0)
-               --(yy_buffer_stack_top);
+  gras_ddt_parse__delete_buffer(YY_CURRENT_BUFFER);
+  YY_CURRENT_BUFFER_LVALUE = NULL;
+  if ((yy_buffer_stack_top) > 0)
+    --(yy_buffer_stack_top);
 
-       if (YY_CURRENT_BUFFER) {
-               gras_ddt_parse__load_buffer_state( );
-               (yy_did_buffer_switch_on_eof) = 1;
-       }
+  if (YY_CURRENT_BUFFER) {
+    gras_ddt_parse__load_buffer_state();
+    (yy_did_buffer_switch_on_eof) = 1;
+  }
 }
 
 /* Allocates the stack if it does not exist.
  *  Guarantees space for at least one push.
  */
-static void gras_ddt_parse_ensure_buffer_stack (void)
+static void gras_ddt_parse_ensure_buffer_stack(void)
 {
-       int num_to_alloc;
-    
-       if (!(yy_buffer_stack)) {
+  int num_to_alloc;
 
-               /* First allocation is just for 2 elements, since we don't know if this
-                * scanner will even need a stack. We use 2 instead of 1 to avoid an
-                * immediate realloc on the next call.
-         */
-               num_to_alloc = 1;
-               (yy_buffer_stack) = (struct yy_buffer_state**)gras_ddt_parse_alloc
-                                                               (num_to_alloc * sizeof(struct yy_buffer_state*)
-                                                               );
-               
-               memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
-                               
-               (yy_buffer_stack_max) = num_to_alloc;
-               (yy_buffer_stack_top) = 0;
-               return;
-       }
+  if (!(yy_buffer_stack)) {
+
+    /* First allocation is just for 2 elements, since we don't know if this
+     * scanner will even need a stack. We use 2 instead of 1 to avoid an
+     * immediate realloc on the next call.
+     */
+    num_to_alloc = 1;
+    (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;
+    (yy_buffer_stack_top) = 0;
+    return;
+  }
 
-       if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
+  if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1) {
 
-               /* Increase the buffer to prepare for a possible push. */
-               int grow_size = 8 /* arbitrary grow size */;
+    /* Increase the buffer to prepare for a possible push. */
+    int grow_size = 8 /* arbitrary grow size */ ;
 
-               num_to_alloc = (yy_buffer_stack_max) + grow_size;
-               (yy_buffer_stack) = (struct yy_buffer_state**)gras_ddt_parse_realloc
-                                                               ((yy_buffer_stack),
-                                                               num_to_alloc * sizeof(struct yy_buffer_state*)
-                                                               );
+    num_to_alloc = (yy_buffer_stack_max) + grow_size;
+    (yy_buffer_stack) = (struct yy_buffer_state **) gras_ddt_parse_realloc
+      ((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*));
-               (yy_buffer_stack_max) = num_to_alloc;
-       }
+    /* zero only the new slots. */
+    memset((yy_buffer_stack) + (yy_buffer_stack_max), 0,
+           grow_size * sizeof(struct yy_buffer_state *));
+    (yy_buffer_stack_max) = num_to_alloc;
+  }
 }
 
 /** Setup the input buffer state to scan directly from a user-specified character buffer.
@@ -1686,47 +1579,47 @@ static void gras_ddt_parse_ensure_buffer_stack (void)
  * 
  * @return the newly allocated buffer state object. 
  */
-YY_BUFFER_STATE gras_ddt_parse__scan_buffer  (char * base, yy_size_t  size )
+YY_BUFFER_STATE gras_ddt_parse__scan_buffer(char *base, yy_size_t size)
 {
-       YY_BUFFER_STATE b;
-    
-       if ( size < 2 ||
-            base[size-2] != YY_END_OF_BUFFER_CHAR ||
-            base[size-1] != YY_END_OF_BUFFER_CHAR )
-               /* They forgot to leave room for the EOB's. */
-               return 0;
-
-       b = (YY_BUFFER_STATE) gras_ddt_parse_alloc(sizeof( struct yy_buffer_state )  );
-       if ( ! b )
-               YY_FATAL_ERROR( "out of dynamic memory in gras_ddt_parse__scan_buffer()" );
-
-       b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
-       b->yy_buf_pos = b->yy_ch_buf = base;
-       b->yy_is_our_buffer = 0;
-       b->yy_input_file = 0;
-       b->yy_n_chars = b->yy_buf_size;
-       b->yy_is_interactive = 0;
-       b->yy_at_bol = 1;
-       b->yy_fill_buffer = 0;
-       b->yy_buffer_status = YY_BUFFER_NEW;
-
-       gras_ddt_parse__switch_to_buffer(b  );
-
-       return b;
+  YY_BUFFER_STATE b;
+
+  if (size < 2 ||
+      base[size - 2] != YY_END_OF_BUFFER_CHAR ||
+      base[size - 1] != YY_END_OF_BUFFER_CHAR)
+    /* They forgot to leave room for the EOB's. */
+    return 0;
+
+  b = (YY_BUFFER_STATE) gras_ddt_parse_alloc(sizeof(struct yy_buffer_state));
+  if (!b)
+    YY_FATAL_ERROR("out of dynamic memory in gras_ddt_parse__scan_buffer()");
+
+  b->yy_buf_size = size - 2;    /* "- 2" to take care of EOB's */
+  b->yy_buf_pos = b->yy_ch_buf = base;
+  b->yy_is_our_buffer = 0;
+  b->yy_input_file = 0;
+  b->yy_n_chars = b->yy_buf_size;
+  b->yy_is_interactive = 0;
+  b->yy_at_bol = 1;
+  b->yy_fill_buffer = 0;
+  b->yy_buffer_status = YY_BUFFER_NEW;
+
+  gras_ddt_parse__switch_to_buffer(b);
+
+  return b;
 }
 
 /** 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,44 +1629,45 @@ 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;
-       yy_size_t n;
-       int i;
-    
-       /* Get memory for full buffer, including space for trailing EOB's. */
-       n = 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];
-
-       buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
-
-       b = gras_ddt_parse__scan_buffer(buf,n );
-       if ( ! b )
-               YY_FATAL_ERROR( "bad buffer in gras_ddt_parse__scan_bytes()" );
-
-       /* It's okay to grow etc. this buffer, and we should throw it
-        * away when we're done.
-        */
-       b->yy_is_our_buffer = 1;
-
-       return b;
+  YY_BUFFER_STATE b;
+  char *buf;
+  yy_size_t n;
+  int i;
+
+  /* Get memory for full buffer, including space for trailing EOB's. */
+  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 < _yybytes_len; ++i)
+    buf[i] = yybytes[i];
+
+  buf[_yybytes_len] = buf[_yybytes_len + 1] = YY_END_OF_BUFFER_CHAR;
+
+  b = gras_ddt_parse__scan_buffer(buf, n);
+  if (!b)
+    YY_FATAL_ERROR("bad buffer in gras_ddt_parse__scan_bytes()");
+
+  /* It's okay to grow etc. this buffer, and we should throw it
+   * away when we're done.
+   */
+  b->yy_is_our_buffer = 1;
+
+  return b;
 }
 
 #ifndef YY_EXIT_FAILURE
 #define YY_EXIT_FAILURE 2
 #endif
 
-static void yy_fatal_error (yyconst char* msg )
+static void yy_fatal_error(yyconst char *msg)
 {
-       (void) fprintf( stderr, "%s\n", msg );
-       exit( YY_EXIT_FAILURE );
+  (void) fprintf(stderr, "%s\n", msg);
+  exit(YY_EXIT_FAILURE);
 }
 
 /* Redefine yyless() so it works in section 3 code. */
@@ -1798,53 +1692,53 @@ static void yy_fatal_error (yyconst char* msg )
 /** Get the current line number.
  * 
  */
-int gras_ddt_parse_get_lineno  (void)
+int gras_ddt_parse_get_lineno(void)
 {
-        
-    return gras_ddt_parse_lineno;
+
+  return gras_ddt_parse_lineno;
 }
 
 /** Get the input stream.
  * 
  */
-FILE *gras_ddt_parse_get_in  (void)
+FILE *gras_ddt_parse_get_in(void)
 {
-        return gras_ddt_parse_in;
+  return gras_ddt_parse_in;
 }
 
 /** Get the output stream.
  * 
  */
-FILE *gras_ddt_parse_get_out  (void)
+FILE *gras_ddt_parse_get_out(void)
 {
-        return gras_ddt_parse_out;
+  return gras_ddt_parse_out;
 }
 
 /** Get the length of the current token.
  * 
  */
-int gras_ddt_parse_get_leng  (void)
+int gras_ddt_parse_get_leng(void)
 {
-        return gras_ddt_parse_leng;
+  return gras_ddt_parse_leng;
 }
 
 /** Get the current token.
  * 
  */
 
-char *gras_ddt_parse_get_text  (void)
+char *gras_ddt_parse_get_text(void)
 {
-        return gras_ddt_parse_text;
+  return gras_ddt_parse_text;
 }
 
 /** Set the current line number.
  * @param line_number
  * 
  */
-void gras_ddt_parse_set_lineno (int  line_number )
+void gras_ddt_parse_set_lineno(int line_number)
 {
-    
-    gras_ddt_parse_lineno = line_number;
+
+  gras_ddt_parse_lineno = line_number;
 }
 
 /** Set the input stream. This does not discard the current
@@ -1853,42 +1747,74 @@ void gras_ddt_parse_set_lineno (int  line_number )
  * 
  * @see gras_ddt_parse__switch_to_buffer
  */
-void gras_ddt_parse_set_in (FILE *  in_str )
+void gras_ddt_parse_set_in(FILE * in_str)
+{
+  gras_ddt_parse_in = in_str;
+}
+
+void gras_ddt_parse_set_out(FILE * out_str)
 {
-        gras_ddt_parse_in = in_str ;
+  gras_ddt_parse_out = out_str;
 }
 
-void gras_ddt_parse_set_out (FILE *  out_str )
+int gras_ddt_parse_get_debug(void)
 {
-        gras_ddt_parse_out = out_str ;
+  return gras_ddt_parse__flex_debug;
 }
 
-int gras_ddt_parse_get_debug  (void)
+void gras_ddt_parse_set_debug(int bdebug)
 {
-        return gras_ddt_parse__flex_debug;
+  gras_ddt_parse__flex_debug = bdebug;
 }
 
-void gras_ddt_parse_set_debug (int  bdebug )
+static int yy_init_globals(void)
 {
-        gras_ddt_parse__flex_debug = bdebug ;
+  /* 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)
+int gras_ddt_parse_lex_destroy(void)
 {
-    
-    /* Pop the buffer stack, destroying each element. */
-       while(YY_CURRENT_BUFFER){
-               gras_ddt_parse__delete_buffer(YY_CURRENT_BUFFER  );
-               YY_CURRENT_BUFFER_LVALUE = NULL;
-               gras_ddt_parse_pop_buffer_state();
-       }
 
-       /* Destroy the stack itself. */
-       gras_ddt_parse_free((yy_buffer_stack) );
-       (yy_buffer_stack) = NULL;
+  /* Pop the buffer stack, destroying each element. */
+  while (YY_CURRENT_BUFFER) {
+    gras_ddt_parse__delete_buffer(YY_CURRENT_BUFFER);
+    YY_CURRENT_BUFFER_LVALUE = NULL;
+    gras_ddt_parse_pop_buffer_state();
+  }
 
-    return 0;
+  /* Destroy the stack itself. */
+  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,90 +1822,97 @@ int gras_ddt_parse_lex_destroy  (void)
  */
 
 #ifndef yytext_ptr
-static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
+static void yy_flex_strncpy(char *s1, yyconst char *s2, int n)
 {
-       register int i;
-       for ( i = 0; i < n; ++i )
-               s1[i] = s2[i];
+  register int i;
+  for (i = 0; i < n; ++i)
+    s1[i] = s2[i];
 }
 #endif
 
 #ifdef YY_NEED_STRLEN
-static int yy_flex_strlen (yyconst char * s )
+static int yy_flex_strlen(yyconst char *s)
 {
-       register int n;
-       for ( n = 0; s[n]; ++n )
-               ;
+  register int n;
+  for (n = 0; s[n]; ++n);
 
-       return n;
+  return n;
 }
 #endif
 
-void *gras_ddt_parse_alloc (yy_size_t  size )
+void *gras_ddt_parse_alloc(yy_size_t size)
 {
-       return (void *) malloc( size );
+  return (void *) malloc(size);
 }
 
-void *gras_ddt_parse_realloc  (void * ptr, yy_size_t  size )
+void *gras_ddt_parse_realloc(void *ptr, yy_size_t size)
 {
-       /* The cast to (char *) in the following accommodates both
-        * implementations that use char* generic pointers, and those
-        * that use void* generic pointers.  It works with the latter
-        * because both ANSI C and C++ allow castless assignment from
-        * any pointer type to void*, and deal with argument conversions
-        * as though doing an assignment.
-        */
-       return (void *) realloc( (char *) ptr, size );
+  /* The cast to (char *) in the following accommodates both
+   * implementations that use char* generic pointers, and those
+   * that use void* generic pointers.  It works with the latter
+   * because both ANSI C and C++ allow castless assignment from
+   * any pointer type to void*, and deal with argument conversions
+   * as though doing an assignment.
+   */
+  return (void *) realloc((char *) ptr, size);
 }
 
-void gras_ddt_parse_free (void * ptr )
+void gras_ddt_parse_free(void *ptr)
 {
-       free( (char *) ptr );   /* see gras_ddt_parse_realloc() for (char *) cast */
+  free((char *) ptr);           /* see gras_ddt_parse_realloc() for (char *) cast */
 }
 
 #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) {
-  switch(gras_ddt_parse_tok_num) {
-  case GRAS_DDT_PARSE_TOKEN_LA      : {printf("TOKEN_LA ");break;}
-  case GRAS_DDT_PARSE_TOKEN_RA      : {printf("TOKEN_RA ");break;}
-  case GRAS_DDT_PARSE_TOKEN_WORD    : {printf("TOKEN_WORD ");break;}
-    /*  case GRAS_DDT_PARSE_TOKEN_SPACE   : {printf("TOKEN_SPACE ");break;}*/
-    /*  case GRAS_DDT_PARSE_TOKEN_COMMENT : {printf("TOKEN_COMMENT ");break;}*/
-  case GRAS_DDT_PARSE_TOKEN_NEWLINE : {printf("TOKEN_NEWLINE\n");return;}
-  case GRAS_DDT_PARSE_TOKEN_EMPTY : {printf("TOKEN_EMPTY\n");return;}
-  default             : {printf("Unknown token %d\n", gras_ddt_parse_tok_num);return;}
+void gras_ddt_parse_dump(void)
+{
+  switch (gras_ddt_parse_tok_num) {
+  case GRAS_DDT_PARSE_TOKEN_LA:{
+      printf("TOKEN_LA ");
+      break;
+    }
+  case GRAS_DDT_PARSE_TOKEN_RA:{
+      printf("TOKEN_RA ");
+      break;
+    }
+  case GRAS_DDT_PARSE_TOKEN_WORD:{
+      printf("TOKEN_WORD ");
+      break;
+    }
+    /*  case GRAS_DDT_PARSE_TOKEN_SPACE   : {printf("TOKEN_SPACE ");break;} */
+    /*  case GRAS_DDT_PARSE_TOKEN_COMMENT : {printf("TOKEN_COMMENT ");break;} */
+  case GRAS_DDT_PARSE_TOKEN_NEWLINE:{
+      printf("TOKEN_NEWLINE\n");
+      return;
+    }
+  case GRAS_DDT_PARSE_TOKEN_EMPTY:{
+      printf("TOKEN_EMPTY\n");
+      return;
+    }
+  default:{
+      printf("Unknown token %d\n", gras_ddt_parse_tok_num);
+      return;
+    }
   }
-  printf("-->%s<-- [line %d, pos %d]\n",gras_ddt_parse_text,gras_ddt_parse_line_pos,gras_ddt_parse_char_pos);
+  printf("-->%s<-- [line %d, pos %d]\n", gras_ddt_parse_text,
+         gras_ddt_parse_line_pos, gras_ddt_parse_char_pos);
   return;
 }
 
-int gras_ddt_parse_lex_n_dump(void) {
+int gras_ddt_parse_lex_n_dump(void)
+{
   gras_ddt_parse_tok_num = gras_ddt_parse_lex();
-  /*  gras_ddt_parse_char_pos += strlen(gras_ddt_parse_text);*/
-  return(gras_ddt_parse_tok_num);
+  /*  gras_ddt_parse_char_pos += strlen(gras_ddt_parse_text); */
+  return (gras_ddt_parse_tok_num);
 }
 
-void  gras_ddt_parse_pointer_init(const char *file) {
-  gras_ddt_file_to_parse = fopen(file,"r");
-  gras_ddt_input_buffer = gras_ddt_parse__create_buffer(gras_ddt_file_to_parse,10 );
+void gras_ddt_parse_pointer_init(const char *file)
+{
+  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;
@@ -1988,7 +1921,8 @@ void  gras_ddt_parse_pointer_init(const char *file) {
   gras_ddt_parse_tok_num = 0;
 }
 
-void  gras_ddt_parse_pointer_close(void) {
+void gras_ddt_parse_pointer_close(void)
+{
   gras_ddt_parse__delete_buffer(gras_ddt_input_buffer);
   fclose(gras_ddt_file_to_parse);
 
@@ -1997,9 +1931,9 @@ 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);
+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;
   gras_ddt_parse__switch_to_buffer(gras_ddt_input_buffer);
 
@@ -2008,15 +1942,18 @@ void  gras_ddt_parse_pointer_string_init(const char *string_to_parse) {
   gras_ddt_parse_tok_num = 0;
 }
 
-void  gras_ddt_parse_pointer_string_close(void) {
+void gras_ddt_parse_pointer_string_close(void)
+{
   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:*/
 /* mode: c */
 /* End: */
-