lexer.h (539B)
#pragma once
#include <stdbool.h>
#include <stddef.h>
#include <stdio.h>
#include <stdlib.h>
#include "token.h"
/////////////////////////////////////////////////
typedef struct Lexer_State {
size_t pos;
size_t line;
size_t col;
} Lexer_State;
typedef struct Lexer {
const char *code;
size_t code_len;
const char *path;
const char *filename;
Lexer_State state;
Token *tokens;
size_t len;
size_t cap;
} Lexer;
/////////////////////////////////////////////////
void lexer_lex(Lexer *lexer);