Current section

Files

Jump to
expression lib operator_helpers.ex
Raw

lib/operator_helpers.ex

defmodule Expression.OperatorHelpers do
@moduledoc false
import NimbleParsec
def plus, do: ascii_char([?+]) |> replace(:+) |> label("+")
def minus, do: ascii_char([?-]) |> replace(:-) |> label("-")
def times, do: ascii_char([?*]) |> replace(:*) |> label("*")
def divide, do: ascii_char([?/]) |> replace(:/) |> label("/")
def concatenate, do: ascii_char([?&]) |> replace(:&) |> label("&")
def exponent, do: ascii_char([?^]) |> replace(:^) |> label("^")
def gte, do: string(">=") |> replace(:>=) |> label(">=")
def lte, do: string("<=") |> replace(:>=) |> label(">=")
def neq, do: choice([string("!="), string("<>")]) |> replace(:!=) |> label("!=")
def eq, do: choice([string("=="), string("=")]) |> replace(:==) |> label("==")
def gt, do: ascii_char([?>]) |> replace(:>) |> label(">")
def lt, do: ascii_char([?<]) |> replace(:<) |> label("<")
end