define :number, "digit+" do digits -> digits |> Enum.join |> String.to_integer end define :digit, "[0-9]" end 42 = Number.parse! "42" ग़ॴɿjtmoulia/neotomex: A PEG parser/transformer with a pleasant Elixir DSL.
|> parse() |> Rorty.Interpreter.interpret(%Rorty.Env{}) result end def parse(src) do try do src |> String.trim() |> Rorty.Grammar.parse!() rescue e in Neotomex.Grammar.ParseError -> e |> handle_exception() end end
• ଞɺLispʹӨڹΛड͚ͨͷ੩తܕ͚ͷͷͳͲɺগͳ͘ͱ33Ҏ্͕͋Δ ͜͜Ͱհͨࣗ͠࡞ݴޠɺElixirͰ࣮ߦ͍ͯ͠ΔͷͰBEAM্Ͱಈ͍͍ͯΔͷͰɺ BEAM Languagesͱ͍͍͑͑Δ͚Ͳ……ɻ → ͡Ό͋ɺͪΌΜͱͨ͠BEAM LanguagesͱΒΛ࡞ͬͯΈΑ͏͡Όͳ͍͔ ؆қͳΠϯλϓϦλݴޠ͔ΒYet Another BEAM Language ग़ॴɿllaisdy/beam_languages: Languages, and about languages, on the BEAM