pub enum ResolvedExpr {
Show 34 variants
Const(Value),
Var(VarRef),
If {
test: Box<ResolvedExpr>,
then: Box<ResolvedExpr>,
else_: Box<ResolvedExpr>,
},
Begin(Vec<ResolvedExpr>),
Set(VarRef, Box<ResolvedExpr>),
Lambda(ResolvedLambda),
Call {
func: Box<ResolvedExpr>,
args: Vec<ResolvedExpr>,
tail: bool,
},
Define(Spur, Box<ResolvedExpr>),
Let {
bindings: Vec<(VarRef, ResolvedExpr)>,
body: Vec<ResolvedExpr>,
},
LetStar {
bindings: Vec<(VarRef, ResolvedExpr)>,
body: Vec<ResolvedExpr>,
},
Letrec {
bindings: Vec<(VarRef, ResolvedExpr)>,
body: Vec<ResolvedExpr>,
},
NamedLet {
name: VarRef,
bindings: Vec<(VarRef, ResolvedExpr)>,
body: Vec<ResolvedExpr>,
},
Do(ResolvedDoLoop),
Try {
body: Vec<ResolvedExpr>,
catch_var: VarRef,
handler: Vec<ResolvedExpr>,
},
Throw(Box<ResolvedExpr>),
And(Vec<ResolvedExpr>),
Or(Vec<ResolvedExpr>),
Quote(Value),
MakeList(Vec<ResolvedExpr>),
MakeVector(Vec<ResolvedExpr>),
MakeMap(Vec<(ResolvedExpr, ResolvedExpr)>),
Defmacro {
name: Spur,
params: Vec<Spur>,
rest: Option<Spur>,
body: Vec<ResolvedExpr>,
},
DefineRecordType {
type_name: Spur,
ctor_name: Spur,
pred_name: Spur,
field_names: Vec<Spur>,
field_specs: Vec<(Spur, Spur)>,
},
Module {
name: Spur,
exports: Vec<Spur>,
body: Vec<ResolvedExpr>,
},
Import {
path: Box<ResolvedExpr>,
selective: Vec<Spur>,
},
Load(Box<ResolvedExpr>),
Eval(Box<ResolvedExpr>),
Prompt(Vec<ResolvedPromptEntry>),
Message {
role: Box<ResolvedExpr>,
parts: Vec<ResolvedExpr>,
},
Deftool {
name: Spur,
description: Box<ResolvedExpr>,
parameters: Box<ResolvedExpr>,
handler: Box<ResolvedExpr>,
},
Defagent {
name: Spur,
options: Box<ResolvedExpr>,
},
Delay(Box<ResolvedExpr>),
Force(Box<ResolvedExpr>),
Macroexpand(Box<ResolvedExpr>),
}Expand description
Resolved expression: like CoreExpr but variables are resolved to slots/upvalues/globals.
Variants§
Const(Value)
Var(VarRef)
If
Begin(Vec<ResolvedExpr>)
Set(VarRef, Box<ResolvedExpr>)
Lambda(ResolvedLambda)
Call
Define(Spur, Box<ResolvedExpr>)
Let
LetStar
Letrec
NamedLet
Do(ResolvedDoLoop)
Try
Throw(Box<ResolvedExpr>)
And(Vec<ResolvedExpr>)
Or(Vec<ResolvedExpr>)
Quote(Value)
MakeList(Vec<ResolvedExpr>)
MakeVector(Vec<ResolvedExpr>)
MakeMap(Vec<(ResolvedExpr, ResolvedExpr)>)
Defmacro
DefineRecordType
Fields
Module
Import
Load(Box<ResolvedExpr>)
Eval(Box<ResolvedExpr>)
Prompt(Vec<ResolvedPromptEntry>)
Message
Deftool
Defagent
Delay(Box<ResolvedExpr>)
Force(Box<ResolvedExpr>)
Macroexpand(Box<ResolvedExpr>)
Trait Implementations§
Source§impl Clone for ResolvedExpr
impl Clone for ResolvedExpr
Source§fn clone(&self) -> ResolvedExpr
fn clone(&self) -> ResolvedExpr
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for ResolvedExpr
impl RefUnwindSafe for ResolvedExpr
impl Send for ResolvedExpr
impl Sync for ResolvedExpr
impl Unpin for ResolvedExpr
impl UnsafeUnpin for ResolvedExpr
impl UnwindSafe for ResolvedExpr
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