32 lines
626 B
Rust
32 lines
626 B
Rust
pub mod tokenizer;
|
|
pub mod parser;
|
|
pub mod grammar;
|
|
|
|
use std::{env, fs};
|
|
|
|
use crate::{tokenizer::{Token, tokenize}, parser::parse};
|
|
|
|
fn main()
|
|
{
|
|
let args: Vec<String> = env::args().collect();
|
|
let file_content = fs::read_to_string(&args[1]).expect("Could not read source file");
|
|
|
|
match compile(&file_content)
|
|
{
|
|
Ok(()) =>
|
|
{
|
|
println!("Done compiling");
|
|
}
|
|
Err(msg) => println!("ERROR: {}", msg)
|
|
}
|
|
}
|
|
|
|
fn compile(file_content: &String) -> Result<(), &'static str>
|
|
{
|
|
let tokens: Vec<Token> = tokenize(&file_content)?;
|
|
println!("{:?}", tokens);
|
|
let node = parse(tokens)?;
|
|
println!("{:?}", node);
|
|
return Ok(());
|
|
}
|