module PyF.Internal.Extensions
( thExtToMetaExt,
)
where
import qualified Language.Haskell.Exts.Extension as Exts
import qualified Language.Haskell.TH as TH
thExtToMetaExt :: TH.Extension -> Maybe Exts.Extension
thExtToMetaExt :: Extension -> Maybe Extension
thExtToMetaExt Extension
e =
KnownExtension -> Extension
Exts.EnableExtension (KnownExtension -> Extension)
-> Maybe KnownExtension -> Maybe Extension
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> case Extension
e of
Extension
TH.Cpp -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.CPP
Extension
_ -> case String -> Extension
Exts.parseExtension (Extension -> String
forall a. Show a => a -> String
show Extension
e) of
Exts.EnableExtension KnownExtension
ext -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
ext
Exts.DisableExtension KnownExtension
ext -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
ext
Exts.UnknownExtension String
_ -> Maybe KnownExtension
forall a. Maybe a
Nothing