From d763f0f5a6a700352ee8926c15c8e58624f705c9 Mon Sep 17 00:00:00 2001 From: Laurenz Date: Fri, 15 Jan 2021 16:53:02 +0100 Subject: =?UTF-8?q?Split=20state=20and=20scopes,=20less=20ref-counting=20?= =?UTF-8?q?=F0=9F=94=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lib.rs | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'src/lib.rs') diff --git a/src/lib.rs b/src/lib.rs index 05cc0569..39ca47a3 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -42,18 +42,21 @@ pub mod pretty; pub mod shaping; pub mod syntax; -use std::rc::Rc; - use crate::diag::{Feedback, Pass}; -use crate::env::SharedEnv; -use crate::eval::State; +use crate::env::Env; +use crate::eval::{Scope, State}; use crate::layout::Frame; /// Process _Typst_ source code directly into a collection of frames. -pub fn typeset(src: &str, env: SharedEnv, state: State) -> Pass> { +pub fn typeset( + src: &str, + env: &mut Env, + scope: &Scope, + state: State, +) -> Pass> { let Pass { output: syntax_tree, feedback: f1 } = parse::parse(src); let Pass { output: layout_tree, feedback: f2 } = - eval::eval(&syntax_tree, Rc::clone(&env), state); + eval::eval(&syntax_tree, env, scope, state); let frames = layout::layout(&layout_tree, env); Pass::new(frames, Feedback::join(f1, f2)) } -- cgit v1.2.3