struct Interpreter<'brw, 'rt> {
vars: &'brw mut Rt<Vec<Slot<&'rt Cons>>>,
env: &'brw mut Rt<Env<'rt>>,
}
Fields§
§vars: &'brw mut Rt<Vec<Slot<&'rt Cons>>>
§env: &'brw mut Rt<Env<'rt>>
Implementations§
Source§impl Interpreter<'_, '_>
impl Interpreter<'_, '_>
fn eval_form<'ob>( &mut self, rt: &Rt<Slot<Gc<ObjectType<'_>>>>, cx: &'ob mut Context<'_>, ) -> Result<Gc<ObjectType<'ob>>, EvalError>
pub(crate) fn eval_sexp<'ob>( &mut self, cons: &Rt<Slot<Gc<&Cons>>>, cx: &'ob mut Context<'_>, ) -> Result<Gc<ObjectType<'ob>>, EvalError>
fn catch<'ob>( &mut self, obj: &Rt<Slot<Gc<ObjectType<'_>>>>, cx: &'ob mut Context<'_>, ) -> Result<Gc<ObjectType<'ob>>, EvalError>
fn throw<'ob>( &mut self, obj: Gc<ObjectType<'_>>, cx: &'ob Context<'_>, ) -> Result<Gc<ObjectType<'ob>>, EvalError>
fn defvar<'ob>( &mut self, obj: &Rt<Slot<Gc<ObjectType<'_>>>>, cx: &'ob mut Context<'_>, ) -> Result<Gc<ObjectType<'ob>>, EvalError>
fn eval_call<'ob>( &mut self, sym: &Rt<Slot<Symbol<'_>>>, args: &Rt<Slot<Gc<ObjectType<'_>>>>, cx: &'ob mut Context<'_>, ) -> Result<Gc<ObjectType<'ob>>, EvalError>
fn eval_function<'ob>( &mut self, obj: &Rt<Slot<Gc<ObjectType<'ob>>>>, cx: &'ob mut Context<'_>, ) -> Result<Gc<ObjectType<'ob>>, EvalError>
Sourcefn replace_doc_symbol<'ob>(
&mut self,
quoted: &Rt<Slot<Gc<ObjectType<'_>>>>,
cx: &'ob mut Context<'_>,
) -> Result<Gc<ObjectType<'ob>>, EvalError>
fn replace_doc_symbol<'ob>( &mut self, quoted: &Rt<Slot<Gc<ObjectType<'_>>>>, cx: &'ob mut Context<'_>, ) -> Result<Gc<ObjectType<'ob>>, EvalError>
Handle special case of (:documentation form) to build the docstring dynamically. If the docstring is not of this form, just return the current body.
fn eval_progx<'ob>( &mut self, obj: &Rt<Slot<Gc<ObjectType<'_>>>>, prog_num: u16, cx: &'ob mut Context<'_>, ) -> Result<Gc<ObjectType<'ob>>, EvalError>
fn eval_progn<'ob>( &mut self, obj: &Rt<Slot<Gc<ObjectType<'_>>>>, cx: &'ob mut Context<'_>, ) -> Result<Gc<ObjectType<'ob>>, EvalError>
fn eval_while<'ob>( &mut self, obj: &Rt<Slot<Gc<ObjectType<'_>>>>, cx: &'ob mut Context<'_>, ) -> Result<Gc<ObjectType<'ob>>, EvalError>
fn eval_cond<'ob>( &mut self, obj: &Rt<Slot<Gc<ObjectType<'_>>>>, cx: &'ob mut Context<'_>, ) -> Result<Gc<ObjectType<'ob>>, EvalError>
fn eval_and<'ob>( &mut self, obj: &Rt<Slot<Gc<ObjectType<'_>>>>, cx: &'ob mut Context<'_>, ) -> Result<Gc<ObjectType<'ob>>, EvalError>
fn eval_or<'ob>( &mut self, obj: &Rt<Slot<Gc<ObjectType<'_>>>>, cx: &'ob mut Context<'_>, ) -> Result<Gc<ObjectType<'ob>>, EvalError>
fn eval_if<'ob>( &mut self, obj: &Rt<Slot<Gc<ObjectType<'_>>>>, cx: &'ob mut Context<'_>, ) -> Result<Gc<ObjectType<'ob>>, EvalError>
fn setq<'ob>( &mut self, obj: &Rt<Slot<Gc<ObjectType<'_>>>>, cx: &'ob mut Context<'_>, ) -> Result<Gc<ObjectType<'ob>>, EvalError>
fn pairs<'ob>( iter: &mut ElemStreamIter<'_>, cx: &'ob Context<'_>, ) -> AnyResult<Option<(Gc<ObjectType<'ob>>, Option<Gc<ObjectType<'ob>>>)>>
fn var_ref<'ob>( &self, sym: Symbol<'_>, cx: &'ob Context<'_>, ) -> Result<Gc<ObjectType<'ob>>, EvalError>
fn var_set( &mut self, name: Symbol<'_>, new_value: Gc<ObjectType<'_>>, cx: &Context<'_>, ) -> AnyResult<()>
fn quote<'ob>( &self, value: Gc<ObjectType<'ob>>, cx: &Context<'_>, ) -> Result<Gc<ObjectType<'ob>>, EvalError>
fn eval_let<'ob>( &mut self, form: &Rt<Slot<Gc<ObjectType<'_>>>>, parallel: bool, cx: &'ob mut Context<'_>, ) -> Result<Gc<ObjectType<'ob>>, EvalError>
fn let_bind_serial( &mut self, form: &Rt<Slot<Gc<ObjectType<'_>>>>, cx: &mut Context<'_>, ) -> Result<u16, EvalError>
fn let_bind_parallel( &mut self, form: &Rt<Slot<Gc<ObjectType<'_>>>>, cx: &mut Context<'_>, ) -> Result<u16, EvalError>
fn create_let_binding( &mut self, var: Symbol<'_>, val: Gc<ObjectType<'_>>, cx: &Context<'_>, ) -> u16
fn let_bind_value<'ob>( &mut self, cons: &Rt<Slot<Gc<&Cons>>>, cx: &'ob mut Context<'_>, ) -> Result<Gc<ObjectType<'ob>>, EvalError>
fn implicit_progn<'ob>( &mut self, forms: ElemStreamIter<'_>, cx: &'ob mut Context<'_>, ) -> Result<Gc<ObjectType<'ob>>, EvalError>
fn unwind_protect<'ob>( &mut self, obj: &Rt<Slot<Gc<ObjectType<'_>>>>, cx: &'ob mut Context<'_>, ) -> Result<Gc<ObjectType<'ob>>, EvalError>
fn save_excursion<'ob>( &mut self, form: &Rt<Slot<Gc<ObjectType<'_>>>>, cx: &'ob mut Context<'_>, ) -> Result<Gc<ObjectType<'ob>>, EvalError>
fn save_current_buffer<'ob>( &mut self, form: &Rt<Slot<Gc<ObjectType<'_>>>>, cx: &'ob mut Context<'_>, ) -> Result<Gc<ObjectType<'ob>>, EvalError>
fn condition_case<'ob>( &mut self, form: &Rt<Slot<Gc<ObjectType<'_>>>>, cx: &'ob mut Context<'_>, ) -> Result<Gc<ObjectType<'ob>>, EvalError>
Auto Trait Implementations§
impl<'brw, 'rt> Freeze for Interpreter<'brw, 'rt>
impl<'brw, 'rt> !RefUnwindSafe for Interpreter<'brw, 'rt>
impl<'brw, 'rt> !Send for Interpreter<'brw, 'rt>
impl<'brw, 'rt> !Sync for Interpreter<'brw, 'rt>
impl<'brw, 'rt> Unpin for Interpreter<'brw, 'rt>
impl<'brw, 'rt> !UnwindSafe for Interpreter<'brw, 'rt>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more