diff options
Diffstat (limited to 'src/prc1/lex.h')
| -rw-r--r-- | src/prc1/lex.h | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/prc1/lex.h b/src/prc1/lex.h new file mode 100644 index 0000000..6e836ac --- /dev/null +++ b/src/prc1/lex.h @@ -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 |
