Files
cval/include/lex.h
2025-11-15 08:01:34 +09:00

40 lines
582 B
C

#pragma once
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include "globals.h"
#define LEX_BUF_SIZE 4096
typedef struct Lexer {
uint32_t linepos;
uint32_t lineno;
FILE *source;
int flag_EOF;
char *buffer;
char *curr;
size_t bytes_in_buffer;
} Lexer;
Lexer *lexer_new();
void lexer_set_source(Lexer *lexer, FILE *source);
void lexer_fill_buffer(Lexer *lexer);
void lexer_consume(Lexer *lexer);
char lexer_curr(Lexer *lexer);
char lexer_peek(Lexer *lexer);
Token lexer_next_token(Lexer *lexer);
void lexer_free(Lexer *lexer);