Evaluates a parsed AST against a context (map of field names to values).
Example:
context = %{
"x" => Decimal.new("100.00"),
"y" => Decimal.new("20.00"),
"category" => "B",
"z" => Decimal.new("5.00")
}
{:ok, ast} = Dsqlex.Parser.parse(tokens)
{:ok, result} = Dsqlex.Evaluator.evaluate(ast, context)