module Foreign.Hoppy.Generator.Std.Internal (
includeHelper,
) where
import Foreign.Hoppy.Generator.Spec (Include, includeLocal)
import Paths_hoppy_std (getDataFileName)
import System.IO.Unsafe (unsafePerformIO)
import System.FilePath ((</>))
includeDir :: FilePath
{-# NOINLINE includeDir #-}
includeDir :: FilePath
includeDir = IO FilePath -> FilePath
forall a. IO a -> a
unsafePerformIO (IO FilePath -> FilePath) -> IO FilePath -> FilePath
forall a b. (a -> b) -> a -> b
$ FilePath -> IO FilePath
getDataFileName (FilePath -> IO FilePath) -> FilePath -> IO FilePath
forall a b. (a -> b) -> a -> b
$ FilePath
"include" FilePath -> FilePath -> FilePath
</> FilePath
"hoppy" FilePath -> FilePath -> FilePath
</> FilePath
"std"
includeHelper :: FilePath -> Include
includeHelper :: FilePath -> Include
includeHelper FilePath
filename = FilePath -> Include
includeLocal (FilePath -> Include) -> FilePath -> Include
forall a b. (a -> b) -> a -> b
$ FilePath
includeDir FilePath -> FilePath -> FilePath
</> FilePath
filename