packages feed

futhark-0.22.2: src/Futhark/CodeGen/Backends/GenericC/Pretty.hs

{-# OPTIONS_GHC -fno-warn-orphans #-}

-- | Compatibility shims for mainland-pretty; the prettyprinting
-- library used by language-c-quote.
module Futhark.CodeGen.Backends.GenericC.Pretty
  ( expText,
    definitionsText,
    typeText,
    idText,
    funcsText,
  )
where

import Data.Text qualified as T
import Language.C.Pretty ()
import Language.C.Syntax qualified as C
import Text.PrettyPrint.Mainland qualified as MPP
import Text.PrettyPrint.Mainland.Class qualified as MPP

expText :: C.Exp -> T.Text
expText = T.pack . MPP.pretty 8000 . MPP.ppr

definitionsText :: [C.Definition] -> T.Text
definitionsText = T.unlines . map (T.pack . MPP.pretty 8000 . MPP.ppr)

typeText :: C.Type -> T.Text
typeText = T.pack . MPP.pretty 8000 . MPP.ppr

idText :: C.Id -> T.Text
idText = T.pack . MPP.pretty 8000 . MPP.ppr

funcsText :: [C.Func] -> T.Text
funcsText = T.unlines . map (T.pack . MPP.pretty 8000 . MPP.ppr)