Packages
expression
2.3.2
2.49.1
2.49.0
2.48.0
2.47.5
2.47.4
2.47.3
2.47.2
2.47.1
2.47.0
2.46.0
2.45.1
2.45.0
2.44.1
2.44.0
2.43.0
2.42.1
2.41.4
2.41.3
2.41.2
2.41.0
2.40.0
2.38.0
2.37.0
2.36.2
2.36.1
2.36.0
2.35.0
2.34.0
2.33.1
2.33.0
2.32.1
2.31.6
2.31.3
2.31.0
2.30.0
2.28.0
2.27.3
2.27.2
2.27.1
2.27.0
2.26.1
2.26.0
2.25.0
2.24.2
2.24.1
2.24.0
2.23.9
2.23.8
2.23.7
2.23.6
2.23.4
2.23.3
2.23.2
2.23.1
2.23.0
2.22.2
2.22.0
2.21.0
2.20.0
2.19.0
2.18.0
2.17.0
2.16.0
2.14.0
2.13.0
2.12.0
2.11.0
2.10.1
2.10.0
2.9.0
2.8.0
2.6.0
2.5.8
2.5.7
2.5.6
2.5.5
2.5.4
2.5.3
2.5.2
2.5.1
2.5.0
2.4.1
2.4.0
2.3.2
2.3.1
2.3.0
2.2.1
2.2.0
2.1.1
2.1.0
2.0.5
2.0.4
2.0.3
2.0.2
2.0.1
2.0.0
1.1.1
1.1.0
1.0.0
0.7.2
0.7.1
0.7.0
0.6.0
0.5.0
0.4.3
0.4.2
0.4.1
0.3.4
0.3.3
0.3.2
0.3.1
0.3.0
0.2.1
0.1.0
A Excel like expression parser, compatible with FLOIP Expression language.
Current section
Files
Jump to
Current section
Files
lib/literal_helpers.ex
defmodule Expression.LiteralHelpers do @moduledoc false import NimbleParsec def int do optional(string("-")) |> concat(integer(min: 1)) |> reduce({Enum, :join, [""]}) |> map({String, :to_integer, []}) end def decimal do optional(string("-")) |> concat(integer(min: 1)) |> concat(string(".")) |> concat(integer(min: 1)) |> reduce({Enum, :join, [""]}) |> map({Decimal, :new, []}) end def numeric do choice([int(), decimal()]) end def single_quoted_string do ignore(string(~s('))) |> repeat( lookahead_not(ascii_char([?'])) |> choice([string(~s(\')), utf8_char([])]) ) |> ignore(string(~s('))) |> reduce({List, :to_string, []}) end def double_quoted_string do ignore(string(~s("))) |> repeat( lookahead_not(ascii_char([?"])) |> choice([string(~s(\")), utf8_char([])]) ) |> ignore(string(~s("))) |> reduce({List, :to_string, []}) endend