aboutsummaryrefslogtreecommitdiff
path: root/include/parser.h
blob: 820738185c20e0d3adfda0b2ac737ec5066fb57e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#ifndef AMALGAM_PARSER_H
#define AMALGAM_PARSER_H

#include "buffer.h"
#include "buffer_view.h"
#include "tokenizer.h"

#define PARSER_OK 0
/* General error */
#define PARSER_ERR -1
#define PARSER_UNEXPECTED_TOKEN -2

typedef struct {
    Buffer ast_objects;
    Tokenizer tokenizer;
} Parser;

WARN_UNUSED_RESULT int parser_init(Parser *self);
void parser_deinit(Parser *self);

WARN_UNUSED_RESULT int parser_parse_buffer(Parser *self, BufferView code_buffer);

#endif