-#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
#define FLEX_SCANNER
#define YY_FLEX_MAJOR_VERSION 2
#define YY_FLEX_MINOR_VERSION 5
-#define YY_FLEX_SUBMINOR_VERSION 31
+#define YY_FLEX_SUBMINOR_VERSION 33
#if YY_FLEX_SUBMINOR_VERSION > 0
#define FLEX_BETA
#endif
/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
-#if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L
+#if __STDC_VERSION__ >= 199901L
+
+/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
+ * if you want the limit (max/min) macros for int types.
+ */
+#ifndef __STDC_LIMIT_MACROS
+#define __STDC_LIMIT_MACROS 1
+#endif
+
#include <inttypes.h>
typedef int8_t flex_int8_t;
typedef uint8_t flex_uint8_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;
/* Points to current character in buffer. */
static char *yy_c_buf_p = (char *) 0;
-static int yy_init = 1; /* whether we need to initialize */
+static int yy_init = 0; /* whether we need to initialize */
static int yy_start = 0; /* start state number */
/* Flag which is used to allow gras_ddt_parse_wrap()'s to do buffer switches
#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>
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
#define YY_EXTRA_TYPE void *
#endif
+static int yy_init_globals (void );
+
/* Macros after this point can all be overridden by user definitions in
* section 1.
*/
register char *yy_cp, *yy_bp;
register int yy_act;
-#line 32 "gras/DataDesc/ddt_parse.yy.l"
-
int comment_caller=0;
int annotate_caller=0;
-#line 664 "gras/DataDesc/ddt_parse.yy.c"
-
- if ( (yy_init) )
+ if ( !(yy_init) )
{
- (yy_init) = 0;
+ (yy_init) = 1;
#ifdef YY_USER_INIT
YY_USER_INIT;
case 1:
YY_RULE_SETUP
-#line 36 "gras/DataDesc/ddt_parse.yy.l"
YY_BREAK
case 2:
YY_RULE_SETUP
-#line 38 "gras/DataDesc/ddt_parse.yy.l"
{ /****************** ANNOTATION ************************/
DEBUG0("Begin annotation");
annotate_caller = INITIAL;
YY_BREAK
case 3:
YY_RULE_SETUP
-#line 45 "gras/DataDesc/ddt_parse.yy.l"
{ /* trim annotation */
DEBUG0("Begin annotation");
annotate_caller = foo;
YY_BREAK
case 4:
YY_RULE_SETUP
-#line 53 "gras/DataDesc/ddt_parse.yy.l"
{
DEBUG0("End annotation");
gras_ddt_parse_char_pos+= strlen(gras_ddt_parse_text);
YY_BREAK
case 5:
YY_RULE_SETUP
-#line 60 "gras/DataDesc/ddt_parse.yy.l"
{
PARSE_ERROR0("``/*g'' construct closed by a regular ``*/''");
}
case 6:
/* rule 6 can match eol */
YY_RULE_SETUP
-#line 63 "gras/DataDesc/ddt_parse.yy.l"
{
PARSE_ERROR0("Type annotation cannot spread over several lines");
}
YY_BREAK
case 7:
YY_RULE_SETUP
-#line 67 "gras/DataDesc/ddt_parse.yy.l"
{ /* eat the rest */
gras_ddt_parse_char_pos+= strlen(gras_ddt_parse_text);
gras_ddt_parse_col_pos+= strlen(gras_ddt_parse_text);
YY_BREAK
case 8:
YY_RULE_SETUP
-#line 73 "gras/DataDesc/ddt_parse.yy.l"
{ /****************** COMMENTS ************************/
/* constructs like : */
/*g [string] g*/
YY_BREAK
case 9:
YY_RULE_SETUP
-#line 81 "gras/DataDesc/ddt_parse.yy.l"
{
comment_caller = foo;
BEGIN(comment);
YY_BREAK
case 10:
YY_RULE_SETUP
-#line 86 "gras/DataDesc/ddt_parse.yy.l"
{ /* eat anything that's not a '*' */
}
YY_BREAK
case 11:
YY_RULE_SETUP
-#line 88 "gras/DataDesc/ddt_parse.yy.l"
{ /* eat up '*'s not followed by '/'s */
}
YY_BREAK
case 12:
/* rule 12 can match eol */
YY_RULE_SETUP
-#line 90 "gras/DataDesc/ddt_parse.yy.l"
{
++gras_ddt_parse_line_pos;
gras_ddt_parse_col_pos=0;
YY_BREAK
case 13:
YY_RULE_SETUP
-#line 95 "gras/DataDesc/ddt_parse.yy.l"
{
gras_ddt_parse_char_pos+= strlen(gras_ddt_parse_text);
gras_ddt_parse_col_pos+= strlen(gras_ddt_parse_text);
YY_BREAK
case 14:
YY_RULE_SETUP
-#line 101 "gras/DataDesc/ddt_parse.yy.l"
{ /****************** STATEMENTS ************************/
gras_ddt_parse_char_pos += strlen(gras_ddt_parse_text);
gras_ddt_parse_col_pos += strlen(gras_ddt_parse_text);
YY_BREAK
case 15:
YY_RULE_SETUP
-#line 107 "gras/DataDesc/ddt_parse.yy.l"
{
gras_ddt_parse_char_pos++;
gras_ddt_parse_col_pos++;
YY_BREAK
case 16:
YY_RULE_SETUP
-#line 113 "gras/DataDesc/ddt_parse.yy.l"
{
gras_ddt_parse_char_pos++;
gras_ddt_parse_col_pos++;
YY_BREAK
case 17:
YY_RULE_SETUP
-#line 119 "gras/DataDesc/ddt_parse.yy.l"
{
gras_ddt_parse_char_pos++;
gras_ddt_parse_col_pos++;
YY_BREAK
case 18:
YY_RULE_SETUP
-#line 125 "gras/DataDesc/ddt_parse.yy.l"
{
gras_ddt_parse_char_pos++;
gras_ddt_parse_col_pos++;
YY_BREAK
case 19:
YY_RULE_SETUP
-#line 131 "gras/DataDesc/ddt_parse.yy.l"
{
gras_ddt_parse_char_pos++;
gras_ddt_parse_col_pos++;
YY_BREAK
case 20:
YY_RULE_SETUP
-#line 137 "gras/DataDesc/ddt_parse.yy.l"
{
gras_ddt_parse_char_pos++;
gras_ddt_parse_col_pos++;
YY_BREAK
case 21:
YY_RULE_SETUP
-#line 143 "gras/DataDesc/ddt_parse.yy.l"
{
gras_ddt_parse_char_pos++;
gras_ddt_parse_col_pos++;
YY_BREAK
case 22:
YY_RULE_SETUP
-#line 149 "gras/DataDesc/ddt_parse.yy.l"
{
gras_ddt_parse_char_pos++;
gras_ddt_parse_col_pos++;
YY_BREAK
case 23:
YY_RULE_SETUP
-#line 155 "gras/DataDesc/ddt_parse.yy.l"
{
gras_ddt_parse_char_pos++;
gras_ddt_parse_col_pos++;
case 24:
/* rule 24 can match eol */
YY_RULE_SETUP
-#line 161 "gras/DataDesc/ddt_parse.yy.l"
{
gras_ddt_parse_line_pos++;
gras_ddt_parse_char_pos++;
YY_BREAK
case 25:
YY_RULE_SETUP
-#line 167 "gras/DataDesc/ddt_parse.yy.l"
{
gras_ddt_parse_char_pos++;
gras_ddt_parse_col_pos++;
YY_BREAK
case 26:
YY_RULE_SETUP
-#line 172 "gras/DataDesc/ddt_parse.yy.l"
ECHO;
YY_BREAK
-#line 983 "gras/DataDesc/ddt_parse.yy.c"
case YY_STATE_EOF(INITIAL):
case YY_STATE_EOF(annotate):
case YY_STATE_EOF(comment):
/* Read in more data. */
YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
- (yy_n_chars), num_to_read );
+ (yy_n_chars), (size_t) num_to_read );
YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
}
gras_ddt_parse_free((void *) b );
}
-#ifndef __cplusplus
+#if !defined(__cplusplus) && !defined(WIN32)
extern int isatty (int );
#endif /* __cplusplus */
/** 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
*
* @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;
int i;
/* Get memory for full buffer, including space for trailing EOB's. */
- n = len + 2;
+ n = _yybytes_len + 2;
buf = (char *) gras_ddt_parse_alloc(n );
if ( ! buf )
YY_FATAL_ERROR( "out of dynamic memory in gras_ddt_parse__scan_bytes()" );
- for ( i = 0; i < len; ++i )
- buf[i] = bytes[i];
+ for ( i = 0; i < _yybytes_len; ++i )
+ buf[i] = yybytes[i];
- buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
+ buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
b = gras_ddt_parse__scan_buffer(buf,n );
if ( ! b )
gras_ddt_parse__flex_debug = bdebug ;
}
+static int yy_init_globals (void)
+{
+ /* Initialization is the same as for the non-reentrant scanner.
+ * This function is called from gras_ddt_parse_lex_destroy(), so don't allocate here.
+ */
+
+ (yy_buffer_stack) = 0;
+ (yy_buffer_stack_top) = 0;
+ (yy_buffer_stack_max) = 0;
+ (yy_c_buf_p) = (char *) 0;
+ (yy_init) = 0;
+ (yy_start) = 0;
+
+/* Defined in main.c */
+#ifdef YY_STDINIT
+ gras_ddt_parse_in = stdin;
+ gras_ddt_parse_out = stdout;
+#else
+ gras_ddt_parse_in = (FILE *) 0;
+ gras_ddt_parse_out = (FILE *) 0;
+#endif
+
+ /* For future reference: Set errno on error, since we are called by
+ * gras_ddt_parse_lex_init()
+ */
+ return 0;
+}
+
/* gras_ddt_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
int gras_ddt_parse_lex_destroy (void)
{
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;
}
static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
{
register int i;
- for ( i = 0; i < n; ++i )
+ for ( i = 0; i < n; ++i )
s1[i] = s2[i];
}
#endif
static int yy_flex_strlen (yyconst char * s )
{
register int n;
- for ( n = 0; s[n]; ++n )
+ for ( n = 0; s[n]; ++n )
;
return n;
#define YYTABLES_NAME "yytables"
-#undef YY_NEW_FILE
-#undef YY_FLUSH_BUFFER
-#undef yy_set_bol
-#undef yy_new_buffer
-#undef yy_set_interactive
-#undef yytext_ptr
-#undef YY_DO_BEFORE_ACTION
-
-#ifdef YY_DECL_IS_OURS
-#undef YY_DECL_IS_OURS
-#undef YY_DECL
-#endif
-#line 172 "gras/DataDesc/ddt_parse.yy.l"
-
-
/* {space}+ { return(TOKEN_SPACE);} */
void gras_ddt_parse_dump(void) {
gras_ddt_parse_tok_num = 0;
}
-
void gras_ddt_parse_pointer_string_init(const char *string_to_parse) {
gras_ddt_input_buffer = gras_ddt_parse__scan_string (string_to_parse);
definition = string_to_parse;