blob: 3ea59bfbcb85cce48331df3cc4473126b3e56bbe (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
module Script.Module (
Module(..),
ModuleName(..), textModuleName,
moduleExportedDefinitions,
) where
import Script.Expr
import Test
data Module = Module
{ moduleName :: ModuleName
, moduleTests :: [ Test ]
, moduleDefinitions :: [ ( VarName, SomeExpr ) ]
, moduleExports :: [ VarName ]
}
moduleExportedDefinitions :: Module -> [ ( VarName, ( FqVarName, SomeExpr )) ]
moduleExportedDefinitions Module {..} =
map (\( var, expr ) -> ( var, ( GlobalVarName moduleName var, expr ))) $
filter ((`elem` moduleExports) . fst) moduleDefinitions
|