diff options
Diffstat (limited to 'lex.h')
| -rw-r--r-- | lex.h | 34 |
1 files changed, 34 insertions, 0 deletions
@@ -0,0 +1,34 @@ +#ifndef LEX_H +#define LEX_H + +#include <stddef.h> +#include <stdio.h> + +enum tktype {UNDEF, ID, LIT, NUM, ANY}; + +struct loc +{ + const char *f; + int line, col; +}; + +struct tk +{ + enum tktype type; + struct loc loc; + char *s; +}; + +struct lex +{ + struct loc loc; + struct tk *tokens, tk; + size_t ntok, len; + int comment; +}; + +int lex(struct lex *lex, FILE *f); +int lex_eof(const struct lex *lex, const struct tk *tk); +void lex_free(struct lex *lex); + +#endif |
