Expand description
tatara-lisp-script — scripting surface for tatara-lisp.
Wraps tatara-lisp-eval::Interpreter<ScriptCtx> with a batteries-included
stdlib (http, json, yaml, sops, file I/O, env, sha256, string ops) so a
.tlisp file can replace a bash script. The binary (tatara-script)
parses a .tlisp file, expands macros via tatara-lisp, and evaluates each
form against this stdlib.
§Usage from nix-run
apps.tatara-script = {
type = "app";
program = "${tataraScript}/bin/tatara-script path/to/script.tlisp";
};§Library surface
Embedders that want to add domain-specific FFI on top of the stdlib can:
ⓘ
use tatara_lisp_script::{Interpreter, ScriptCtx, install_stdlib};
let mut interp: Interpreter<ScriptCtx> = Interpreter::new();
let mut ctx = ScriptCtx::default();
install_stdlib(&mut interp, &mut ctx);
// Register more fns before eval_program.Re-exports§
pub use script_ctx::ScriptCtx;pub use stdlib::install_stdlib;
Modules§
- script_
ctx ScriptCtx— the host context passed to every stdlib FFI call.- stdlib
- The tatara-script stdlib. Each module registers a family of FFI
primitives on
Interpreter<ScriptCtx>;install_stdlibis the single entry point — call afterInterpreter::new().
Structs§
- Interpreter
- An embedded tatara-lisp evaluator, parameterized over the host context
Hthat registered functions read/write. - Spanned
- An S-expression node with source position.
Enums§
Functions§
- eval_
str - Convenience: read + evaluate a tatara-lisp source string against a fresh interpreter with the full stdlib installed.
- read_
spanned - Read a full program into
Vec<Spanned>, where every subtree carries aSpanpointing back intosrc. Equivalent toreadin grammar and error reporting; strictly additive.