3 /* gs/parse.h -- automatic parsing of data structures */
5 /* Authors: Arnaud Legrand, Martin Quinson */
8 GRAS_DDT_PARSE_TOKEN_EMPTY = 0,
9 GRAS_DDT_PARSE_TOKEN_LP = 512, /* { */
10 GRAS_DDT_PARSE_TOKEN_RP, /* } */
11 GRAS_DDT_PARSE_TOKEN_LB, /* [ */
12 GRAS_DDT_PARSE_TOKEN_RB, /* ] */
13 GRAS_DDT_PARSE_TOKEN_WORD,
14 GRAS_DDT_PARSE_TOKEN_SPACE,
15 GRAS_DDT_PARSE_TOKEN_QUOTE,
16 GRAS_DDT_PARSE_TOKEN_COMMENT,
17 GRAS_DDT_PARSE_TOKEN_NEWLINE,
18 GRAS_DDT_PARSE_TOKEN_STAR,
19 GRAS_DDT_PARSE_TOKEN_SEMI_COLON,
20 GRAS_DDT_PARSE_TOKEN_COLON,
21 GRAS_DDT_PARSE_TOKEN_ERROR
22 } gras_ddt_parse_token_t;
24 #define GRAS_DDT_PARSE_MAX_STR_CONST 4048
26 extern int gras_ddt_parse_line_pos;
27 extern int gras_ddt_parse_col_pos;
28 extern int gras_ddt_parse_char_pos;
29 extern int gras_ddt_parse_tok_num;
31 void gras_ddt_parse_dump(void);
32 int gras_ddt_parse_lex(void);
33 int gras_ddt_parse_lex_n_dump(void);
34 void gras_ddt_parse_pointer_init(const char *file);
35 void gras_ddt_parse_pointer_close(void);
36 void gras_ddt_parse_pointer_string_init(const char *string_to_parse);
37 void gras_ddt_parse_pointer_string_close(void);
39 /* prototypes of the functions offered by flex */
40 int gras_ddt_parse_get_lineno (void);
41 FILE *gras_ddt_parse_get_in (void);
42 FILE *gras_ddt_parse_get_out (void);
43 int gras_ddt_parse_get_leng (void);
44 char *gras_ddt_parse_get_text (void);
45 void gras_ddt_parse_set_lineno (int line_number );
46 void gras_ddt_parse_set_in (FILE * in_str );
47 void gras_ddt_parse_set_out (FILE * out_str );
48 int gras_ddt_parse_get_debug (void);
49 void gras_ddt_parse_set_debug (int bdebug );
50 int gras_ddt_parse_lex_destroy (void);