Elex.Evaluator (Elex v0.2.1)
View SourceEvaluates a parsed expression AST to a runtime value.
This module raises RuntimeError on evaluation failures (missing variables, type
errors, function failures). For a safe string-based API that returns error tuples,
prefer Elex.evaluate/2.
Examples
context = Elex.new_context() |> Elex.add_variable("x", 10)
{:ok, ast, _} = Elex.Parser.parse("x + 5", context)
Elex.Evaluator.evaluate(ast, context)
#=> #Decimal<15>
Summary
Functions
Evaluates a parsed expression AST.
Functions
@spec evaluate(term(), Elex.Context.t()) :: Decimal.t() | boolean() | String.t() | nil
Evaluates a parsed expression AST.
Parameters
ast- A parsed AST node fromElex.Parserctx- AElex.Contextwith variable values and functions
Returns
The evaluated result: a Decimal.t(), boolean(), String.t(), or nil.
Raises
RuntimeErroron type errors, missing variables, or function call failures
Examples
context = Elex.new_context() |> Elex.add_variable("x", 10)
{:ok, ast, _} = Elex.Parser.parse("x * 2", context)
Elex.Evaluator.evaluate(ast, context)
#=> #Decimal<20>