module YesodDsl.Generator.Common where import YesodDsl.AST import Language.Haskell.HsColour.Classify brackets :: Bool -> String -> String brackets True s = "(" ++ s ++ ")" brackets False s = s maybeHsJust :: Bool -> String -> String maybeHsJust True v = "(Just " ++ v ++ ")" maybeHsJust False v = v makeJust :: Int -> String -> String makeJust n t | n > 0 = "just (" ++ makeJust (n - 1) t ++ ")" | otherwise = t quote :: String -> String quote s = "\"" ++ s ++ "\"" indent :: Int -> String -> String indent x = unlines . (map ((replicate x ' ')++)) . lines prepend :: String -> String -> String prepend x = (x++) entityFieldName :: Entity -> Field -> String entityFieldName e f = (lowerFirst . entityName) e ++ (upperFirst . fieldName) f resultMapper :: Maybe FunctionName -> String resultMapper mmapper = maybe "" ((" $ " ++) . (++ " $ ")) mmapper isKeyword :: String -> Bool isKeyword = (== [Keyword]) . map fst . tokenise safeHsName :: String -> String safeHsName x | isKeyword x = x ++ "_" | otherwise = x