Versions in this module Expand all Collapse all v0 v0.2.0 May 31, 2023 Changes in this version + var FalseExpr = falseExpr + var NilExpr = nilExpr + var TrueExpr = trueExpr + type Builtin interface + Name func(*Engine) string + type BuiltinA func([]sxpf.Object) (sxpf.Object, error) + func (b BuiltinA) Call(eng *Engine, _ sxpf.Environment, args []sxpf.Object) (sxpf.Object, error) + func (b BuiltinA) IsAtom() bool + func (b BuiltinA) IsEql(other sxpf.Object) bool + func (b BuiltinA) IsEqual(other sxpf.Object) bool + func (b BuiltinA) IsNil() bool + func (b BuiltinA) Name(eng *Engine) string + func (b BuiltinA) Print(w io.Writer) (int, error) + func (b BuiltinA) Repr() string + func (b BuiltinA) String() string + type BuiltinCallExpr struct + Args []Expr + Proc Builtin + func (bce *BuiltinCallExpr) Compute(eng *Engine, env sxpf.Environment) (sxpf.Object, error) + func (bce *BuiltinCallExpr) String() string + type BuiltinEEA func(*Engine, sxpf.Environment, []sxpf.Object) (sxpf.Object, error) + func (b BuiltinEEA) Call(eng *Engine, env sxpf.Environment, args []sxpf.Object) (sxpf.Object, error) + func (b BuiltinEEA) IsAtom() bool + func (b BuiltinEEA) IsEql(other sxpf.Object) bool + func (b BuiltinEEA) IsEqual(other sxpf.Object) bool + func (b BuiltinEEA) IsNil() bool + func (b BuiltinEEA) Name(eng *Engine) string + func (b BuiltinEEA) Print(w io.Writer) (int, error) + func (b BuiltinEEA) Repr() string + func (b BuiltinEEA) String() string + type CallError struct + Err error + Name string + func (e CallError) Error() string + func (e CallError) Unwrap() error + type CallExpr struct + Args []Expr + Proc Expr + func (ce *CallExpr) Compute(eng *Engine, env sxpf.Environment) (sxpf.Object, error) + func (ce *CallExpr) String() string + type Callable interface + Call func(*Engine, sxpf.Environment, []sxpf.Object) (sxpf.Object, error) + func GetCallable(obj sxpf.Object) (Callable, bool) + type Engine struct + func MakeEngine(sf sxpf.SymbolFactory, root sxpf.Environment, parser Parser, executor Executor) *Engine + func (eng *Engine) Bind(name string, obj sxpf.Object) error + func (eng *Engine) BindBuiltinA(name string, fn BuiltinA) error + func (eng *Engine) BindBuiltinEEA(name string, fn BuiltinEEA) error + func (eng *Engine) BindSyntax(name string, fn SyntaxFn) error + func (eng *Engine) BuiltinName(b Builtin) string + func (eng *Engine) Call(env sxpf.Environment, fn Callable, args []sxpf.Object) (sxpf.Object, error) + func (eng *Engine) Eval(env sxpf.Environment, obj sxpf.Object) (sxpf.Object, error) + func (eng *Engine) Execute(env sxpf.Environment, expr Expr) (sxpf.Object, error) + func (eng *Engine) ExecuteTCO(env sxpf.Environment, expr Expr) (sxpf.Object, error) + func (eng *Engine) GetToplevelEnv() sxpf.Environment + func (eng *Engine) Parse(env sxpf.Environment, obj sxpf.Object) (Expr, error) + func (eng *Engine) RootEnvironment() sxpf.Environment + func (eng *Engine) SetToplevelEnv(env sxpf.Environment) error + func (eng *Engine) SymbolFactory() sxpf.SymbolFactory + type Executor interface + Execute func(*Engine, sxpf.Environment, Expr) (sxpf.Object, error) + func MakeSimpleExecutor() Executor + type Expr interface + Compute func(*Engine, sxpf.Environment) (sxpf.Object, error) + type NotBoundError struct + Env sxpf.Environment + Sym *sxpf.Symbol + func (e NotBoundError) Error() string + type NotCallableError struct + Obj sxpf.Object + func (e NotCallableError) Error() string + func (e NotCallableError) String() string + type Parser interface + Parse func(*Engine, sxpf.Environment, sxpf.Object) (Expr, error) + func MakeDefaultParser() Parser + type ResolveExpr struct + Symbol *sxpf.Symbol + func (re ResolveExpr) Compute(_ *Engine, env sxpf.Environment) (sxpf.Object, error) + type SelfExpr struct + Obj sxpf.Object + func (se SelfExpr) Compute(*Engine, sxpf.Environment) (sxpf.Object, error) + type Syntax struct + func GetSyntax(obj sxpf.Object) (*Syntax, bool) + func MakeSyntax(name string, fn SyntaxFn) *Syntax + func (sy *Syntax) IsAtom() bool + func (sy *Syntax) IsEql(other sxpf.Object) bool + func (sy *Syntax) IsEqual(other sxpf.Object) bool + func (sy *Syntax) IsNil() bool + func (sy *Syntax) Parse(eng *Engine, env sxpf.Environment, args *sxpf.List) (Expr, error) + func (sy *Syntax) Print(w io.Writer) (int, error) + func (sy *Syntax) Repr() string + func (sy *Syntax) String() string + type SyntaxFn func(*Engine, sxpf.Environment, *sxpf.List) (Expr, error)