Current section
Files
Jump to
Current section
Files
lib/operators.ex
defmodule DreaeQL.Operators do
defmacro binary_operator(name) do
quote do
defmodule DreaeQL.Operators.unquote(name) do
defstruct [:left_side, :right_side, operator: :binary]
end
end
end
defmacro unary_operator(name) do
quote do
defmodule DreaeQL.Operators.unquote(name) do
defstruct [:expr, operator: :unary]
end
end
end
defmacro __using__(_params) do
quote do
alias DreaeQL.Operators
Operators.binary_operator And
Operators.binary_operator Or
Operators.binary_operator NotEquals
Operators.binary_operator Equals
Operators.binary_operator GreaterThan
Operators.binary_operator LessThan
Operators.binary_operator GreaterThanEquals
Operators.binary_operator LessThanEquals
Operators.unary_operator Not
end
end
end