blob: 6e836ac50016a19a6d11adb0cfeb3448760d96fe (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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
|