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

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

typedef struct {
    pit_lex_token token;
    i64 start, end;
    i64 line, column; /* for error reporting */
} pit_parser_token_info;

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

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

#endif