@hackage grab-form0.0.0.8

Applicative parsers for form parameter lists

  • Installation

  • Dependencies (4)

  • Dependents (0)

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"
      }
  ]
)