Packages

Mathematical expression parser and evaluator in Elixir. Tags: math, parse, parser, eval

Current section

Files

Jump to
abacus lib compile.ex
Raw

lib/compile.ex

defmodule Abacus.Compile do
@conversion [
add: :+,
subtract: :-,
divide: :/,
multiply: :*,
logical_and: :&&,
logical_or: :||,
eq: :==,
neq: :!=,
gt: :>,
lt: :<,
gte: :>=,
lte: :<=,
]
for {abacus, elixir} <- @conversion do
def compile({unquote(abacus), a, b}) do
{:ok, {
unquote(elixir),
[],
[a, b]}}
end
end
def compile(num) when is_number(num), do: {:ok, num}
def compile(other) when other in [true, false, nil], do: {:ok, other}
end