using Function2 = Result(*)(Environment *env, List *args)
using kernel_ptr = sbn::pointer< Kernel >
using Cpp_function = Result(*)(Environment *env, Object *args)
Void = 0
Integer = 1
Cell = 2
Symbol = 3
Primitive = 4
Function = 5
Macro = 6
Environment = 7
Boolean = 8
Float = 9
Async = 10
public sbn::kernel
index(size_t rhs) -> void
index() const -> size_t
expression(Object * rhs) -> void
expression() const -> const Object *
expression() -> Object *
environment(Environment * rhs) -> void
environment() const -> const Environment *
environment() -> Environment *
result(Object * rhs) -> void
result() const -> const Object *
result() -> Object *
read(sbn::kernel_buffer & in) -> voidvirtual
write(sbn::kernel_buffer & out) const -> voidvirtual
react(sbn::kernel_ptr && child) -> voidvirtual
Collects the output from the task from subordinate kernel child
.
act() -> voidvirtual
Performs the task or launches subordinate kernels to do so.
Kernel(Environment * env, Object * expr, size_t index)
Kernel(Environment * env, Object * expr)
Kernel()
public lisp::Object
Environment * env
Object * body
Cell * params
operator=(Function &&) -> Function &
Function(Function &&)
operator=(const Function &) -> Function &
Function(const Function &)
~Function()
operator!=(const Function & rhs) const -> bool
operator==(const Function & rhs) const -> bool
equals(Object * rhs) const -> boolvirtual
read(sbn::kernel_buffer & in) -> voidvirtual
write(sbn::kernel_buffer & out) const -> voidvirtual
write(std::ostream & out) const -> voidvirtual
Function()
Function(Type t)explicit
Function(Cell * params, Object * body, Environment * env)explicit
public lisp::Object
operator=(Primitive &&) -> Primitive &
Primitive(Primitive &&)
operator=(const Primitive &) -> Primitive &
Primitive(const Primitive &)
~Primitive()
operator!=(const Primitive & rhs) const -> bool
operator==(const Primitive & rhs) const -> bool
equals(Object * rhs) const -> boolvirtual
read(sbn::kernel_buffer & in) -> voidvirtual
write(sbn::kernel_buffer & out) const -> voidvirtual
write(std::ostream & out) const -> voidvirtual
Primitive()
Primitive(Cpp_function f, Cpp_function_id id)explicit
public lisp::Object
operator=(Environment &&) -> Environment &
Environment(Environment &&)
operator=(const Environment &) -> Environment &
Environment(const Environment &)
~Environment()
operator!=(const Environment & rhs) const -> bool
operator==(const Environment & rhs) const -> bool
equals(Object * rhs) const -> boolvirtual
read(sbn::kernel_buffer & in) -> voidvirtual
write(sbn::kernel_buffer & out) const -> voidvirtual
write(std::ostream & out) const -> voidvirtual
add(Symbol * symbol, Object * value) -> void
find(Symbol * symbol) -> Object *
Environment(Cell * symbols, Object * values, Environment * parent)
Environment(Object * variables, Environment * parent)
Environment()
public lisp::Object
operator=(Boolean &&) -> Boolean &
Boolean(Boolean &&)
operator=(const Boolean &) -> Boolean &
Boolean(const Boolean &)
~Boolean()
operator!=(const Boolean & rhs) const -> bool
operator==(const Boolean & rhs) const -> bool
equals(Object * rhs) const -> boolvirtual
read(sbn::kernel_buffer & in) -> voidvirtual
write(sbn::kernel_buffer & out) const -> voidvirtual
write(std::ostream & out) const -> voidvirtual
Boolean()
Boolean(bool v)explicit
lisp::Boolean
lisp::Cell
lisp::Environment
lisp::Float
lisp::Function
lisp::Integer
lisp::List
lisp::Primitive
lisp::Symbol
operator delete[](void * ptr) -> void
operator delete(void * ptr) -> void
operator new[](std::size_t size) -> void *
operator new(std::size_t size) -> void *
operator=(Object &&) -> Object &
Object(Object &&)
operator=(const Object &) -> Object &
Object(const Object &)
~Object()virtual
Object()
empty() const -> bool
equals(Object * rhs) const -> boolvirtual
eval(Environment * env) -> Resultvirtual
read(sbn::kernel_buffer & in) -> voidvirtual
write(sbn::kernel_buffer & out) const -> voidvirtual
write(std::ostream & out) const -> voidvirtual
Object(Type t)explicit
public lisp::Object
operator=(Cell &&) -> Cell &
Cell(Cell &&)
operator=(const Cell &) -> Cell &
Cell(const Cell &)
~Cell()
operator!=(const Cell & rhs) const -> bool
operator==(const Cell & rhs) const -> bool
equals(Object * rhs) const -> boolvirtual
eval(Environment * env) -> Resultvirtual
read(sbn::kernel_buffer & in) -> voidvirtual
write(sbn::kernel_buffer & out) const -> voidvirtual
write(std::ostream & out) const -> voidvirtual
Cell()
Cell(Object * a, Object * b)explicit
public lisp::Object
operator=(Symbol &&) -> Symbol &
Symbol(Symbol &&)
operator=(const Symbol &) -> Symbol &
Symbol(const Symbol &)
~Symbol()
operator!=(const Symbol & rhs) const -> bool
operator==(const Symbol & rhs) const -> bool
equals(Object * rhs) const -> boolvirtual
eval(Environment * env) -> Resultvirtual
read(sbn::kernel_buffer & in) -> voidvirtual
write(sbn::kernel_buffer & out) const -> voidvirtual
write(std::ostream & out) const -> voidvirtual
Symbol()
Symbol(string_view s)
public lisp::Object
operator=(Integer &&) -> Integer &
Integer(Integer &&)
operator=(const Integer &) -> Integer &
Integer(const Integer &)
~Integer()
operator!=(const Integer & rhs) const -> bool
operator==(const Integer & rhs) const -> bool
equals(Object * rhs) const -> boolvirtual
read(sbn::kernel_buffer & in) -> voidvirtual
write(sbn::kernel_buffer & out) const -> voidvirtual
write(std::ostream & out) const -> voidvirtual
Integer()
Integer(int64_t v)explicit
public lisp::Kernel
react(sbn::kernel_ptr && child) -> voidvirtual
Collects the output from the task from subordinate kernel child
.
act() -> voidvirtual
Performs the task or launches subordinate kernels to do so.
Main(int argc, char ** argv, Environment * env)
Main()
public lisp::Object
operator=(Float &&) -> Float &
Float(Float &&)
operator=(const Float &) -> Float &
Float(const Float &)
~Float()
operator!=(const Float & rhs) const -> bool
operator==(const Float & rhs) const -> bool
equals(Object * rhs) const -> boolvirtual
read(sbn::kernel_buffer & in) -> voidvirtual
write(sbn::kernel_buffer & out) const -> voidvirtual
write(std::ostream & out) const -> voidvirtual
Float()
Float(float v)explicit
using size_type = size_t
using iterator = const_iterator
using const_iterator = const value_type *
using value_type = char
operator=(string_view &&) -> string_view &
string_view(string_view &&)
operator=(const string_view &) -> string_view &
string_view(const string_view &)
~string_view()
string_view()
operator!=(string_view rhs) const -> bool
operator==(string_view rhs) const -> bool
is_symbol() const -> bool
is_real() const -> bool
is_integer() const -> bool
read_atom() -> Object *
read_list() -> Object *
scan_for_matching_bracket() const -> iterator
skip_until_the_next_white_space() -> void
skip_until_the_end_of_the_line() -> void
trim_left() -> void
trim() -> void
front() const -> char
empty() const -> bool
size() const -> size_type
data() const -> iterator
string_view(iterator a, iterator b, iterator orig)
string_view(iterator a, iterator b)
string_view(const std::string & s)
string_view(const char * s)
read(sbn::kernel_buffer & in) -> Object *
make_main_kernel() -> Kernel *
to_string(const Object * obj) -> std::string
make_top_environment() -> Environment *
define(Environment * env, const char * name, Cpp_function function, Cpp_function_id id) -> void
to_boolean(Object * object) -> bool
operator<<(std::ostream & out, const Object * obj) -> std::ostream &
template <class Target>
cast(Object * object) -> Target *
operator<<(std::ostream & out, const Result & result) -> std::ostream &
operator>>(sbn::kernel_buffer & in, Object *& rhs) -> sbn::kernel_buffer &
make(Type type) -> Object *
eval(Environment * env, Object * obj) -> Result
define(Environment * env, const char * name, Function2 function, Cpp_function_id function_id) -> void
operator<<(sbn::kernel_buffer & out, const Object * obj) -> sbn::kernel_buffer &
define(Environment * env, const char * name, Object * value) -> void
read(const char * string) -> Object *
read(string_view & s) -> Object *
intern(lisp::string_view name) -> Symbol *
operator<<(std::ostream & out, const string_view & rhs) -> std::ostream &