Signo.AST (Signo v0.0.2)
View SourceAST definitions for the Signo Programming Language.
Summary
Types
@type callable() :: Signo.AST.Lambda.t() | Signo.AST.Builtin.t() | Signo.AST.Macro.t()
Values to which arguments can be applied, aka the head of a procedure.
@type expression() :: Signo.AST.List.t() | Signo.AST.Quoted.t() | Signo.AST.Nil.t() | Signo.AST.Number.t() | Signo.AST.Atom.t() | Signo.AST.String.t() | Signo.AST.Symbol.t() | Signo.AST.Lambda.t() | Signo.AST.Builtin.t() | Signo.AST.Macro.t()
An expression is a building block for the AST
that evaluates down to an value/0
.
@type ref() :: binary()
A reference is a key by which a value/0
can
be looked up in the Signo.Env
.
@type t() :: %Signo.AST{expressions: [expression()]}
@type value() :: Signo.AST.Nil.t() | Signo.AST.Number.t() | Signo.AST.Atom.t() | Signo.AST.String.t() | callable()
A value is an expression that cannot be further simplied by evaluating it.