more fixes, lexer should now be correct
[cparser] / lexer_t.h
1 #ifndef LEXER_T_H
2 #define LEXER_T_H
3
4 #include "lexer.h"
5
6 #include <stdio.h>
7 #include "symbol_table_t.h"
8 #include "adt/obst.h"
9 #include "adt/strset.h"
10
11 #define MAX_INDENT               256
12
13 typedef struct source_position_t source_position_t;
14 struct source_position_t {
15         const char *input_name;
16         unsigned    linenr;
17 };
18
19 struct lexer_t {
20         int               c;
21         source_position_t source_position;
22         FILE             *input;
23         char              buf[1024];
24         const char       *bufend;
25         const char       *bufpos;
26         strset_t          stringset;
27 };
28
29 void lexer_init(lexer_t *lexer, FILE *stream, const char *input_name);
30
31 void lexer_destroy(lexer_t *lexer);
32
33 #endif