Description
Applicative parsers for form parameter lists.
Description
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"
}
]
)