hercules-ci-cnix-expr-0.3.6.1: src/Hercules/CNix/Expr/Context.hs
{-# LANGUAGE EmptyDataDecls #-}
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE TemplateHaskellQuotes #-}
module Hercules.CNix.Expr.Context
( context,
evalContext,
EvalState,
Value',
Attr',
BindingsBuilder',
module Hercules.CNix.Store.Context,
(=:),
)
where
import qualified Data.Map as M
import Hercules.CNix.Store.Context hiding (context)
import qualified Language.C.Inline.Context as C
import qualified Language.C.Inline.Cpp as C
import qualified Language.C.Types as C
import Protolude
data EvalState
data Value'
data Attr'
data BindingsBuilder'
context :: C.Context
context =
C.cppCtx
<> C.fptrCtx
<> C.bsCtx
<> evalContext
(=:) :: k -> a -> Map k a
(=:) = M.singleton
evalContext :: C.Context
evalContext =
mempty
{ C.ctxTypesTable =
C.TypeName "EvalState"
=: [t|EvalState|]
<> C.TypeName "Value"
=: [t|Value'|]
<> C.TypeName "Attr"
=: [t|Attr'|]
<> C.TypeName "BindingsBuilder"
=: [t|BindingsBuilder'|]
}