Core, validated AST for PTC-Lisp.
This module defines the type specifications for the intermediate representation that the analyzer produces. The interpreter evaluates CoreAST to produce results.
Pipeline
source → Parser → RawAST → Analyze → CoreAST → Eval → result
Summary
Types
@type t() :: literal() | {:vector, [t()]} | {:map, [{t(), t()}]} | {:set, [t()]} | {:var, name()} | {:data, name()} | {:call, t(), [t()]} | {:let, [binding()], t()} | {:if, t(), t(), t()} | {:fn, fn_params(), t()} | {:fn, name(), fn_params(), t()} | {:do, [t()]} | {:and, [t()]} | {:or, [t()]} | {:return, t()} | {:fail, t()} | {:task, String.t(), t()} | {:task_dynamic, t(), t()} | {:step_done, t(), t()} | {:task_reset, t()} | {:tool_call, name(), [t()]} | {:def, name(), t(), map()} | {:defonce, name(), t(), map()} | {:loop, [binding()], t()} | {:recur, [t()]}