shake-ats-1.5.0.0: src/Development/Shake/ATS/Generate.hs
module Development.Shake.ATS.Generate ( generateLinks
) where
import Control.Lens
import Data.Semigroup
import Language.ATS
generateLinks :: String -> Either (ATSError String) String
generateLinks = fmap (printATS . generateLinks') . parse
generateLinks' :: ATS -> ATS
generateLinks' (ATS ds) = ATS (fmap g ds <> [macDecl])
where g f@Func{} = Extern undefined (set (fun.preF.expression) expr f)
g x = x
expr = Just (StringLit "\"mac#\"")
macDecl = Define "#define ATS_MAINATSFLAG 1"