Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
curry-packages
json
Commits
8138e0db
Commit
8138e0db
authored
Jan 02, 2019
by
Michael Hanus
Browse files
Imports updated
parent
87afccdf
Pipeline
#366
failed with stages
Changes
1
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
src/JSON/Parser.curry
View file @
8138e0db
...
...
@@ -31,19 +31,19 @@ pObject' = (:) <$> (pWhitespace *> pKeyValuePair) <*> (pWhitespace *> char ',' *
pKeyValuePair :: Parser (String, JValue)
pKeyValuePair = (,) <$> pString <*> (pWhitespace *> char ':' *> pWhitespace *> pJValue)
test_pObject_empty ::
Test.EasyCheck.
Prop
test_pObject_empty :: Prop
test_pObject_empty = parse pObject "{}" -=- Just (JObject [])
test_pObject_onlyStringKeys ::
Test.EasyCheck.
Prop
test_pObject_onlyStringKeys :: Prop
test_pObject_onlyStringKeys = parse pObject "{1: 2}" -=- Nothing
test_pObject_simple ::
Test.EasyCheck.
Prop
test_pObject_simple :: Prop
test_pObject_simple = parse pObject "{\"test\": 1, \"test2\": false}" -=- Just (JObject [("test", JNumber 1.0), ("test2", JFalse)])
test_pObject_whitespace ::
Test.EasyCheck.
Prop
test_pObject_whitespace :: Prop
test_pObject_whitespace = parse pObject "{\n \"test\": 1,\n \"test2\": false\n}" -=- Just (JObject [("test", JNumber 1.0), ("test2", JFalse)])
test_pObject_nested ::
Test.EasyCheck.
Prop
test_pObject_nested :: Prop
test_pObject_nested = parse pObject "{\"test\": {\"hello\": \"world\"}}" -=- Just (JObject [("test", JObject [("hello", JString "world")])])
pArray :: Parser JValue
...
...
@@ -53,16 +53,16 @@ pArray = JArray <$> (char '[' *> pWhitespace *> pArray' <* pWhitespace <* char
pArray' :: Parser [JValue]
pArray' = (:) <$> (pWhitespace *> pJValue) <*> ((pWhitespace *> char ',' *> pArray') <|> yield [])
test_pArray_empty ::
Test.EasyCheck.
Prop
test_pArray_empty :: Prop
test_pArray_empty = parse pArray "[]" -=- Just (JArray [])
test_pArray_single ::
Test.EasyCheck.
Prop
test_pArray_single :: Prop
test_pArray_single = parse pArray "[1]" -=- Just (JArray [JNumber 1.0])
test_pArray_multi ::
Test.EasyCheck.
Prop
test_pArray_multi :: Prop
test_pArray_multi = parse pArray "[true, false, null]" -=- Just (JArray [JTrue, JFalse, JNull])
test_pArray_nested ::
Test.EasyCheck.
Prop
test_pArray_nested :: Prop
test_pArray_nested = parse pArray "[true, [false], [[null]]]" -=- Just (JArray [JTrue, JArray [JFalse], JArray [JArray [JNull]]])
pWhitespace :: Parser ()
...
...
@@ -110,52 +110,52 @@ pTwoByteHex = hexToInt <$> ((:) <$> pHexDigit <*> ((:) <$> pHexDigit <*> ((:) <$
hexToInt :: String -> Int
hexToInt s = foldl1 ((+).(16*)) (map digitToInt s)
test_pCharSequence_simple ::
Test.EasyCheck.
Prop
test_pCharSequence_simple :: Prop
test_pCharSequence_simple = parse pCharSequence "test" -=- Just "test"
test_pCharSequence_noDoubleQuote ::
Test.EasyCheck.
Prop
test_pCharSequence_noDoubleQuote :: Prop
test_pCharSequence_noDoubleQuote = parse pCharSequence "te\"st" -=- Nothing
test_pCharSequence_noStandaloneBackslash ::
Test.EasyCheck.
Prop
test_pCharSequence_noStandaloneBackslash :: Prop
test_pCharSequence_noStandaloneBackslash = parse pCharSequence "He\\world" -=- Nothing
test_pCharSequence_escapedDoubleQuote ::
Test.EasyCheck.
Prop
test_pCharSequence_escapedDoubleQuote :: Prop
test_pCharSequence_escapedDoubleQuote = parse pCharSequence "Hello \\\"World\\\"" -=- Just "Hello \"World\""
test_pCharSequence_escapedBackslash ::
Test.EasyCheck.
Prop
test_pCharSequence_escapedBackslash :: Prop
test_pCharSequence_escapedBackslash = parse pCharSequence "He\\\\world" -=- Just "He\\world"
test_pCharSequence_escapedSlash ::
Test.EasyCheck.
Prop
test_pCharSequence_escapedSlash :: Prop
test_pCharSequence_escapedSlash = parse pCharSequence "He\\/world" -=- Just "He/world"
test_pCharSequence_escapedBackspace ::
Test.EasyCheck.
Prop
test_pCharSequence_escapedBackspace :: Prop
test_pCharSequence_escapedBackspace = parse pCharSequence "He\\bworld" -=- Just "He\bworld"
test_pCharSequence_escapedFormFeed ::
Test.EasyCheck.
Prop
test_pCharSequence_escapedFormFeed :: Prop
test_pCharSequence_escapedFormFeed = parse pCharSequence "He\\fworld" -=- Just "He\fworld"
test_pCharSequence_escapedNewline ::
Test.EasyCheck.
Prop
test_pCharSequence_escapedNewline :: Prop
test_pCharSequence_escapedNewline = parse pCharSequence "He\\nworld" -=- Just "He\nworld"
test_pCharSequence_escapedCarriageReturn ::
Test.EasyCheck.
Prop
test_pCharSequence_escapedCarriageReturn :: Prop
test_pCharSequence_escapedCarriageReturn = parse pCharSequence "He\\rworld" -=- Just "He\rworld"
test_pCharSequence_escapedTab ::
Test.EasyCheck.
Prop
test_pCharSequence_escapedTab :: Prop
test_pCharSequence_escapedTab = parse pCharSequence "He\\tworld" -=- Just "He\tworld"
test_pCharSequence_twoEscapes ::
Test.EasyCheck.
Prop
test_pCharSequence_twoEscapes :: Prop
test_pCharSequence_twoEscapes = parse pCharSequence "He\\r\\nWorld" -=- Just "He\r\nWorld"
test_pCharSequence_escapedUnicodeChar ::
Test.EasyCheck.
Prop
test_pCharSequence_escapedUnicodeChar :: Prop
test_pCharSequence_escapedUnicodeChar = parse pCharSequence "Hello \\u2603 World" -=- Just "Hello ☃ World"
test_pCharSequence_escapedUnicodeRequiresFourDigits ::
Test.EasyCheck.
Prop
test_pCharSequence_escapedUnicodeRequiresFourDigits :: Prop
test_pCharSequence_escapedUnicodeRequiresFourDigits = parse pCharSequence "Hello \\u26 World" -=- Nothing
test_pString_simple ::
Test.EasyCheck.
Prop
test_pString_simple :: Prop
test_pString_simple = parse pString "\"Hello, World\"" -=- Just "Hello, World"
test_pString_complex ::
Test.EasyCheck.
Prop
test_pString_complex :: Prop
test_pString_complex = parse pString "\"Hello \\r\\n \\u2603 World\"" -=- Just "Hello \r\n ☃ World"
pJNumber :: Parser JValue
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment