4 | module Language.TOML.ConcreteSyntax
11 | data CKeyAtom = CKBare String
15 | data CKey = CKAtom CKeyAtom
16 | | CKDotted (List1 CKeyAtom)
24 | | CVArray (List CValue)
25 | | CVInlineTable (List (CKey, CValue))
29 | data Item : Type where
30 | IKeyValue : (key : CKey) -> (val : CValue) -> Item
31 | ITableHeader : (header : CKey) -> Item
32 | ITableArray : (header : CKey) -> Item
38 | show (CKQuoted x) = "\"" ++ x ++ "\""
42 | show (CKAtom x) = show x
43 | show (CKDotted x) = fastConcat . intersperse "." . forget $
show <$> x
47 | show (CVString x) = show x
48 | show (CVInteger x) = show x
49 | show (CVFloat x) = show x
50 | show (CVBoolean x) = show x
51 | show (CVArray xs) = "["
52 | ++ fastConcat (intersperse ", " $
map (assert_total show) xs)
54 | show (CVInlineTable xs) = "{"
55 | ++ fastConcat (intersperse ", " $
map (\(k, v) => show k ++ " = " ++ assert_total show v) xs)
60 | show (IKeyValue key val) = "keyval: " ++ show key ++ " = " ++ show val
61 | show (ITableHeader header) = "table: " ++ show header
62 | show (ITableArray header) = "tablearr: " ++ show header