1module Language.JSON.Parser
3import Language.JSON.Data
7import public Language.JSON.Tokens
12punct : Punctuation -> Grammar JSONToken True ()
13punct p = match $ JTPunct p
15rawString : Grammar JSONToken True String
16rawString = do mstr <- match JTString
17 the (Grammar _ False _) $
20 Nothing => fail "invalid string"
23 json : Grammar JSONToken True JSON
31 object : Grammar JSONToken True JSON
32 object = do punct $ Curly Open
38 properties : Grammar JSONToken False (List (String, JSON))
39 properties = sepBy (punct Comma) $
45 array : Grammar JSONToken True JSON
46 array = do punct (Square Open)
52 values : Grammar JSONToken False (List JSON)
53 values = sepBy (punct Comma) json
55 string : Grammar JSONToken True JSON
56 string = map JString rawString
58 boolean : Grammar JSONToken True JSON
59 boolean = map JBoolean $ match JTBoolean
61 number : Grammar JSONToken True JSON
62 number = map JNumber $ match JTNumber
64 null : Grammar JSONToken True JSON
65 null = map (const JNull) $ match JTNull
68parseJSON : List JSONToken -> Maybe JSON
69parseJSON toks = case parse json $ filter (not . ignored) toks of
70 Right (j, []) => Just j
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list