From 4afc8ffdfe7ca2976bbab9d59da4c2ae11902c2f Mon Sep 17 00:00:00 2001 From: Akshay Date: Tue, 30 Mar 2021 19:33:46 +0530 Subject: add assert primitive; pass state in Evaluator --- src/utils.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/utils.rs') 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::{ consts::FONT_PATH, lisp::{ error::{EvalError, LispError, ParseError}, - eval::eval, + eval::Evaluator, expr::LispExpr, lex::Lexer, parse::Parser, @@ -80,10 +80,14 @@ pub fn load_script>(path: P, app: &mut AppState) -> Result<(), Li .map_err(EvalError::ScriptLoadError)?; let mut parser = Parser::new(Lexer::new(&buf, 0)); + let mut evaluator = Evaluator { + app, + context: Vec::new(), + }; for expr in parser.parse_exprs().map_err(|err| { LispError::Stringified(err.display(&buf, path.as_ref().to_str().unwrap_or(""))) })? { - eval(&expr, app)?; + evaluator.eval(&expr)?; } return Ok(()); } -- cgit v1.2.3