Add error handling for parser
This commit is contained in:
parent
9a13d0b9b6
commit
02026c42e0
6 changed files with 286 additions and 214 deletions
|
@ -25,7 +25,7 @@ mod variable;
|
|||
|
||||
pub fn compile(code: &str) -> Result<String, Box<dyn Error>> {
|
||||
let tokens = tokenize(code)?;
|
||||
let mut ast = parse(&tokens);
|
||||
let mut ast = parse(&tokens)?;
|
||||
type_check(&mut ast, &mut SymTab::new_type_table());
|
||||
let ir = generate_ir(&ast);
|
||||
let assembly = generate_assembly(&ir);
|
||||
|
@ -49,7 +49,7 @@ pub fn start_interpreter() {
|
|||
for line in lines {
|
||||
if let Ok(code) = line {
|
||||
let tokens = tokenize(&code).unwrap();
|
||||
let ast = parse(&tokens);
|
||||
let ast = parse(&tokens).unwrap();
|
||||
|
||||
let val = interpret(&ast, &mut SymTab::new_val_table());
|
||||
println!("{}", val);
|
||||
|
|
Reference in a new issue