grab-form: Applicative parsers for form parameter lists

[ library, mit, text ] [ Propose Tags ]

Grab is an Applicative for consuming lists of (name, value) parameters.

Example

Parser:

nameStateAndQAs :: Grab EnglishSentence (Text, Text, [QA])
nameStateAndQAs =
    (,,)
        <$> at "name" (only text)
        <*> at "state" (only text)
        <*> at "security" (only (natList (only qa)))

qa :: Grab EnglishSentence QA
qa =
    QA
        <$> at "Q" (only text)
        <*> at "A" (only text)

Input:

name:           Alonzo
state:          Montana
security[1].Q:  What is your favorite hobby?
security[1].A:  watching cars
security[2].Q:  What is your oldest sibling's name?
security[2].A:  melman
security[3].Q:  What was the make and model of your first car?
security[3].A:  bmw x5

Output:

( "Alonzo"
, "Montana"
, [ QA
      { qa_question = "What is your favorite hobby?"
      , qa_answer = "watching cars"
      }
  , QA
      { qa_question = "What is your oldest sibling's name?"
      , qa_answer = "melman"
      }
  , QA
      { qa_question = "What was the make and model of your first car?"
      , qa_answer = "bmw x5"
      }
  ]
)
Versions [faq] 0.0.0.1, 0.0.0.2 (info)
Change log changelog.md
Dependencies base (>=4.12.0.0 && <4.13), containers (>=0.6.0.1 && <0.7), grab, text (>=1.2.3.1 && <1.3) [details]
License MIT
Copyright 2019 Typeclass Consulting, LLC
Author Chris Martin
Maintainer Chris Martin, Julie Moronuki
Category Text
Home page https://github.com/typeclasses/grab
Bug tracker https://github.com/typeclasses/grab/issues
Uploaded by chris_martin at Tue Jun 18 00:29:52 UTC 2019
Distributions NixOS:0.0.0.2
Downloads 95 total (28 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs available [build log]
Last success reported on 2019-06-18 [all 1 reports]

Modules

[Index] [Quick Jump]

Downloads

Maintainer's Corner

For package maintainers and hackage trustees