compiler wip

This commit is contained in:
2024-11-26 20:53:08 -07:00
parent e32c778acb
commit 51109ee4bb
5 changed files with 112 additions and 72 deletions

View File

@@ -10,6 +10,8 @@ use std::{
use thiserror::Error;
use token::{Keyword, Number, Symbol, Token, TokenType};
use crate::boxed;
#[derive(Error, Debug)]
pub enum TokenizerError {
#[error("IO Error: {0}")]
@@ -39,7 +41,7 @@ pub(crate) struct Tokenizer {
impl Tokenizer {
pub fn from_path(input_file: impl Into<PathBuf>) -> Result<Self, TokenizerError> {
let file = std::fs::File::open(input_file.into())?;
let reader = BufReader::new(Box::new(file) as Box<dyn Tokenize>);
let reader = BufReader::new(boxed!(file) as Box<dyn Tokenize>);
Ok(Self {
reader,
@@ -53,7 +55,7 @@ impl Tokenizer {
impl From<String> for Tokenizer {
fn from(input: String) -> Self {
let reader = BufReader::new(Box::new(Cursor::new(input)) as Box<dyn Tokenize>);
let reader = BufReader::new(boxed!(Cursor::new(input)) as Box<dyn Tokenize>);
Self {
reader,