Elex.Evaluator (Elex v0.2.1)

View Source

Evaluates 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

evaluate(ast, ctx)

@spec evaluate(term(), Elex.Context.t()) :: Decimal.t() | boolean() | String.t() | nil

Evaluates a parsed expression AST.

Parameters

Returns

The evaluated result: a Decimal.t(), boolean(), String.t(), or nil.

Raises

  • RuntimeError on 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>