2 export = [possibleUnsafeSclValueByName, unsafeSclValueByName, sclModuleNames, moduleByName]
5 include "./CurrentModuleRepository"
8 importJava "org.simantics.scl.compiler.module.repository.ModuleRepository" where
9 // data ModuleRepository
10 // defined in CurrentModuleRepository
13 unsafeSclValueByName_ :: ModuleRepository -> String -> <Proc> a
15 @JavaName getSourceRepository
16 moduleSourceRepositoryOf :: ModuleRepository -> ModuleSourceRepository
19 moduleByName_ :: ModuleRepository -> String -> <Proc> Failable Module
21 importJava "org.simantics.scl.compiler.source.repository.ModuleSourceRepository" where
22 data ModuleSourceRepository
24 @JavaName getModuleNames
25 sclModuleNames_ :: ModuleSourceRepository -> [String]
27 importJava "org.simantics.scl.compiler.errors.Failable" where
30 didSucceed :: Failable a -> Boolean
31 getResult :: Failable a -> Maybe a
33 unsafeSclValueByName :: String -> <Proc> a
34 unsafeSclValueByName = unsafeSclValueByName_ MODULE_REPOSITORY
36 possibleUnsafeSclValueByName :: String -> <Proc> Maybe a
37 possibleUnsafeSclValueByName name = Just (unsafeSclValueByName name) `catch` \(_ :: Exception) -> Nothing
39 sclModuleNames :: <Proc> [String]
40 sclModuleNames = sclModuleNames_ (moduleSourceRepositoryOf MODULE_REPOSITORY)
42 moduleByName :: String -> <Proc> Maybe Module
43 moduleByName name = getResult failable
45 failable = moduleByName_ MODULE_REPOSITORY name