aboutsummaryrefslogtreecommitdiff
path: root/src/utils.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/utils.rs')
-rw-r--r--src/utils.rs8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/utils.rs b/src/utils.rs
index fc96615..dcf652d 100644
--- a/src/utils.rs
+++ b/src/utils.rs
@@ -3,7 +3,7 @@ use crate::{
3 consts::FONT_PATH, 3 consts::FONT_PATH,
4 lisp::{ 4 lisp::{
5 error::{EvalError, LispError, ParseError}, 5 error::{EvalError, LispError, ParseError},
6 eval::eval, 6 eval::Evaluator,
7 expr::LispExpr, 7 expr::LispExpr,
8 lex::Lexer, 8 lex::Lexer,
9 parse::Parser, 9 parse::Parser,
@@ -80,10 +80,14 @@ pub fn load_script<P: AsRef<Path>>(path: P, app: &mut AppState) -> Result<(), Li
80 .map_err(EvalError::ScriptLoadError)?; 80 .map_err(EvalError::ScriptLoadError)?;
81 81
82 let mut parser = Parser::new(Lexer::new(&buf, 0)); 82 let mut parser = Parser::new(Lexer::new(&buf, 0));
83 let mut evaluator = Evaluator {
84 app,
85 context: Vec::new(),
86 };
83 for expr in parser.parse_exprs().map_err(|err| { 87 for expr in parser.parse_exprs().map_err(|err| {
84 LispError::Stringified(err.display(&buf, path.as_ref().to_str().unwrap_or("<unknown>"))) 88 LispError::Stringified(err.display(&buf, path.as_ref().to_str().unwrap_or("<unknown>")))
85 })? { 89 })? {
86 eval(&expr, app)?; 90 evaluator.eval(&expr)?;
87 } 91 }
88 return Ok(()); 92 return Ok(());
89} 93}