[−][src]Crate litto
litto
provides some building blocks for building scripting languages
that can be embedded in a Rust application or library.
The name comes from little
and ditto
(A Pokémon name).
litto
does not define a scripting language in a concrete way.
For example, syntax, types, stdlib can all be customized.
Refer to Interpreter
for the abstraction.
Although the Interpreter
is abstract, this
crate does provide some building blocks to make it easier to implement
Interpreter
. For example:
env::KvEnv
: A nested environment that can be used to resolve variables from string name to value.value::Value
: An abstract value that is tracked by a cyclic garbage collector, and supports function calls.expr::Sexp
: S-expression, commonly seen in Lisp-like languages.
Example Languages
Re-exports
pub use gcmodule; |
Modules
env | Example implementations about environment. |
expr | Example implementations about expression. |
lang | Example languages. |
value | Example implementations about value. |
Macros
sexp | Macro for creating S-expression. |
Traits
Interpreter | A lightweight interpreter interface. |