@@ -30,18 +30,18 @@ toModule (name, values) =
30toValue (name, tipe, desc) =
30toValue (name, tipe, desc) =
31 "{ \"name\" : " ++ show name ++
31 "{ \"name\" : " ++ show name ++
32 ",\n \"type\" : \"" ++ show tipe ++
32 ",\n \"type\" : \"" ++ show tipe ++
33− ",\n \"desc\" : " ++ show desc ++ "\n }"
33+ "\",\n \"desc\" : " ++ show desc ++ "\n }"
35docParse :: String -> Either String (String, [(String, Type, String)])
35docParse :: String -> Either String (String, [(String, Type, String)])
36docParse = setupParser $ do
36docParse = setupParser $ do
37 optional freshLine
37 optional freshLine
38 (,) <$> option "Main" moduleName <*> types
38 (,) <$> option "Main" moduleName <*> types
40 skip = manyTill anyChar simpleNewline >> return []
40 skip = manyTill anyChar simpleNewline >> return []
41 end = many1 anyChar >> return []
41 end = many1 anyChar >> return []
42 types = concat <$> many (docs <|> try skip <|> end)
42 types = concat <$> many (docs <|> try skip <|> end)
43 getName = intercalate "." . fst
43 getName = intercalate "." . fst
44− moduleName = do optional freshLine
44+ moduleName = do optional freshLine
45 getName <$> moduleDef `followedBy` freshLine
45 getName <$> moduleDef `followedBy` freshLine
47docs :: IParser [(String, Type, String)]
47docs :: IParser [(String, Type, String)]