module Futhark.Doc.Html ( primTypeHtml , prettyU , renderName , joinBy , commas , brackets , braces , parens , pipes ) where import Language.Futhark import Futhark.Util.Pretty (Doc,ppr) import qualified Text.PrettyPrint.Mainland as PP (pretty) import Text.Blaze.Html5 (toHtml, Html) docToHtml :: Doc -> Html docToHtml :: Doc -> Html docToHtml = String -> Html forall a. ToMarkup a => a -> Html toHtml (String -> Html) -> (Doc -> String) -> Doc -> Html forall b c a. (b -> c) -> (a -> b) -> a -> c . Int -> Doc -> String PP.pretty Int 80 primTypeHtml :: PrimType -> Html primTypeHtml :: PrimType -> Html primTypeHtml = Doc -> Html docToHtml (Doc -> Html) -> (PrimType -> Doc) -> PrimType -> Html forall b c a. (b -> c) -> (a -> b) -> a -> c . PrimType -> Doc forall a. Pretty a => a -> Doc ppr prettyU :: Uniqueness -> Html prettyU :: Uniqueness -> Html prettyU = Doc -> Html docToHtml (Doc -> Html) -> (Uniqueness -> Doc) -> Uniqueness -> Html forall b c a. (b -> c) -> (a -> b) -> a -> c . Uniqueness -> Doc forall a. Pretty a => a -> Doc ppr renderName :: Name -> Html renderName :: Name -> Html renderName Name name = Doc -> Html docToHtml (Name -> Doc forall a. Pretty a => a -> Doc ppr Name name) joinBy :: Html -> [Html] -> Html joinBy :: Html -> [Html] -> Html joinBy Html _ [] = Html forall a. Monoid a => a mempty joinBy Html _ [Html x] = Html x joinBy Html sep (Html x:[Html] xs) = Html x Html -> Html -> Html forall a. Semigroup a => a -> a -> a <> (Html -> Html) -> [Html] -> Html forall (t :: * -> *) m a. (Foldable t, Monoid m) => (a -> m) -> t a -> m foldMap (Html sep Html -> Html -> Html forall a. Semigroup a => a -> a -> a <>) [Html] xs commas :: [Html] -> Html commas :: [Html] -> Html commas = Html -> [Html] -> Html joinBy (String -> Html forall a. ToMarkup a => a -> Html toHtml String ", ") parens :: Html -> Html parens :: Html -> Html parens Html x = String -> Html forall a. ToMarkup a => a -> Html toHtml String "(" Html -> Html -> Html forall a. Semigroup a => a -> a -> a <> Html x Html -> Html -> Html forall a. Semigroup a => a -> a -> a <> String -> Html forall a. ToMarkup a => a -> Html toHtml String ")" braces :: Html -> Html braces :: Html -> Html braces Html x = String -> Html forall a. ToMarkup a => a -> Html toHtml String "{" Html -> Html -> Html forall a. Semigroup a => a -> a -> a <> Html x Html -> Html -> Html forall a. Semigroup a => a -> a -> a <> String -> Html forall a. ToMarkup a => a -> Html toHtml String "}" brackets :: Html -> Html brackets :: Html -> Html brackets Html x = String -> Html forall a. ToMarkup a => a -> Html toHtml String "[" Html -> Html -> Html forall a. Semigroup a => a -> a -> a <> Html x Html -> Html -> Html forall a. Semigroup a => a -> a -> a <> String -> Html forall a. ToMarkup a => a -> Html toHtml String "]" pipes :: [Html] -> Html pipes :: [Html] -> Html pipes = Html -> [Html] -> Html joinBy (String -> Html forall a. ToMarkup a => a -> Html toHtml String " | ")