YuyaAizawa / peg

Parser combinator implementation for Parsing Expression Grammar (PEG)

Home Page:https://package.elm-lang.org/packages/YuyaAizawa/peg/latest/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

PEG for Elm

A parser combinator implementation for Parsing Expression Grammar (PEG).

Usage

  1. Make base parser.
  2. Combine parsers.
  3. Use parse function to get result.
-- 1. Make base parser.
numbers =
  chars Char.isDigit

minus =
  match "-"
    |> option
    |> map (Maybe.withDefault "")


-- 2. Combine parsers.
intParser =
  seq2
  minus numbers
  (\minusStr numberStr -> minusStr ++ numberStr)
    |> flatMap (\str ->
      case String.toInt str of
        Just i -> return i
        Nothing -> fail)

-- 3. Use `parse` function to get result.
result =
  intParser |> parse "42" -- Just 42

Example

This is Json parser example imlpemented with reference to json.org.

We will present mini-C parser example. COMING SOON!

License

BSD-3-Clause. see LISENCE file.

About

Parser combinator implementation for Parsing Expression Grammar (PEG)

https://package.elm-lang.org/packages/YuyaAizawa/peg/latest/

License:BSD 3-Clause "New" or "Revised" License


Languages

Language:Elm 100.0%