Elex.Validator (Elex v0.2.1)
View SourceValidates a parsed expression AST for type correctness.
Checks that operators are applied to compatible types, variables exist in the
context, and function calls match registered signatures. Used by
Elex.Parser during parsing and available for direct AST validation.
Examples
context = Elex.new_context() |> Elex.add_variable("x", 10)
{:ok, ast, _} = Elex.Parser.parse("x + 5", context, validate: false)
Elex.Validator.validate(ast, context)
#=> {:ok, :decimal}
Summary
Functions
Validates an expression AST against a context.
Functions
@spec validate(term(), Elex.Context.t()) :: {:ok, atom()} | {:error, String.t()}
Validates an expression AST against a context.
Parameters
ast- A parsed AST node fromElex.Parserctx- AElex.Contextwith variable types and functions
Returns
{:ok, type}- The expression's result type (:decimal,:boolean,:string, ornil){:error, reason}- A human-readable validation error
Examples
context = Elex.new_context() |> Elex.add_variable("x", 10)
{:ok, ast, _} = Elex.Parser.parse("x > 0", context, validate: false)
Elex.Validator.validate(ast, context)
#=> {:ok, :boolean}