Add Stmt and incorporate meta statements
This helps split up expressions, meta calls (like includes) that can be expanded into more expressions. Signed-off-by: Alek Ratzloff <alekratz@gmail.com>
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
use crate::compile::Compile;
|
||||
use crate::object::*;
|
||||
use crate::scope::*;
|
||||
use crate::syn::ast::SpExpr;
|
||||
use crate::syn::ast::SpStmt;
|
||||
use crate::vm::{error::*, inst::*};
|
||||
use std::cell::RefCell;
|
||||
use std::collections::BTreeMap;
|
||||
@@ -175,10 +175,10 @@ impl Machine {
|
||||
// Eval
|
||||
// /////////////////////////////////////////////////////////////////////////
|
||||
|
||||
pub fn eval(&mut self, exprs: &Vec<SpExpr>) -> Result<()> {
|
||||
pub fn eval(&mut self, stmts: Vec<SpStmt>) -> Result<()> {
|
||||
self.scope_stack.push_scope();
|
||||
let mut compile = Compile::new(&mut self.scope_stack, &mut self.quote_table);
|
||||
let code = Rc::new(compile.compile(exprs));
|
||||
let code = Rc::new(compile.compile(stmts));
|
||||
let locals = self.scope_stack.pop_scope().unwrap();
|
||||
self.call_stack.push(
|
||||
QuoteFrame {
|
||||
|
||||
Reference in New Issue
Block a user