eyg/interpreter/expression
Values
pub fn await(
ret: Result(
value.Value(a, #(List(#(state.Kontinue(a), a)), state.Env(a))),
#(
break.Reason(
a,
#(List(#(state.Kontinue(a), a)), state.Env(a)),
),
a,
state.Env(a),
state.Stack(a),
),
),
) -> promise.Promise(
Result(
value.Value(a, #(List(#(state.Kontinue(a), a)), state.Env(a))),
#(
break.Reason(
a,
#(List(#(state.Kontinue(a), a)), state.Env(a)),
),
a,
state.Env(a),
state.Stack(a),
),
),
)
pub fn call(
f: value.Value(
t,
#(List(#(state.Kontinue(t), t)), state.Env(t)),
),
args: List(
#(
value.Value(
t,
#(List(#(state.Kontinue(t), t)), state.Env(t)),
),
t,
),
),
) -> Result(
value.Value(t, #(List(#(state.Kontinue(t), t)), state.Env(t))),
#(
break.Reason(
t,
#(List(#(state.Kontinue(t), t)), state.Env(t)),
),
t,
state.Env(t),
state.Stack(t),
),
)
Call an evaluated function with a list of args
pub fn call_field(
record: value.Value(
t,
#(List(#(state.Kontinue(t), t)), state.Env(t)),
),
field: String,
meta: t,
args: List(
#(
value.Value(
t,
#(List(#(state.Kontinue(t), t)), state.Env(t)),
),
t,
),
),
) -> Result(
value.Value(t, #(List(#(state.Kontinue(t), t)), state.Env(t))),
#(
break.Reason(
t,
#(List(#(state.Kontinue(t), t)), state.Env(t)),
),
t,
state.Env(t),
state.Stack(t),
),
)
pub fn execute(
exp: #(tree.Expression(t), t),
scope: List(
#(
String,
value.Value(
t,
#(List(#(state.Kontinue(t), t)), state.Env(t)),
),
),
),
) -> Result(
value.Value(t, #(List(#(state.Kontinue(t), t)), state.Env(t))),
#(
break.Reason(
t,
#(List(#(state.Kontinue(t), t)), state.Env(t)),
),
t,
state.Env(t),
state.Stack(t),
),
)
Execute an expression within a scope
pub fn resume(
value: value.Value(
m,
#(List(#(state.Kontinue(m), m)), state.Env(m)),
),
env: state.Env(m),
k: state.Stack(m),
) -> Result(
value.Value(m, #(List(#(state.Kontinue(m), m)), state.Env(m))),
#(
break.Reason(
m,
#(List(#(state.Kontinue(m), m)), state.Env(m)),
),
m,
state.Env(m),
state.Stack(m),
),
)
Resume the interpretation loop with a value from a previous break position. This can be used to resume after any break but is normally used to implement effects and reference lookup