summaryrefslogtreecommitdiff
path: root/src/parser.h
blob: f99a891399f277fabe40258a854442e18bd476df (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#ifndef PIT_PARSER_H
#define PIT_PARSER_H

#include "lexer.h"
#include "runtime.h"

typedef struct {
    pit_lex_token token;
    i64 start, end;
} pit_parser_token_info;

typedef struct {
    pit_lexer *lexer;
    pit_parser_token_info cur, next;
} pit_parser;

pit_parser *pit_parser_from_lexer(pit_lexer *lex);
pit_value pit_parse(pit_runtime *rt, pit_parser *st, bool *eof);

#endif