aboutsummaryrefslogtreecommitdiff
path: root/src/lexer.h
blob: 96bed26ba58ed857c58e3f78c735cfb038da44c3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#pragma once

#include "tokens.h"
#include <stdbool.h>

typedef struct {
    char *src;
    i64 len;
    i64 pos;

    char *filename;
    i64 line;
    i64 col;
} Lexer;

Lexer *Lexer_new(char *filename, char *src, i64 len);
Lexer *Lexer_new_open_file(char *filename);

Token Lexer_next(Lexer *lexer);
Token Lexer_peek(Lexer *lexer);