blob: 4ab3e700684bcab9a765495c168c89acc545f2b3 (
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
35
36
|
#ifndef LEX_H
#define LEX_H
#include "arg.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
{
const struct args *args;
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
|