#ifndef LEX_H #define LEX_H #include #include 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