summaryrefslogtreecommitdiff
path: root/src/parser.h
blob: 38c8f9442e536cb65bd037eafd5bf334c1a9b32f (plain)
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
#ifndef PARSER_H
#define PARSER_H

#include <stddef.h>
#include <stdint.h>

#include "lex.h"
#include "irm.h"

enum parser_state {
	PARSER_PANIC = -1,
	PARSER_GRACEFUL
};

struct parser_config {
	enum parser_state state;
	struct token *tokens;
	struct irm irm;
	size_t size;
	size_t pos;
};

void parser_parse(struct parser_config *pc);

#endif