2 export = [possibleUnsafeSclValueByName, unsafeSclValueByName, sclModuleNames, moduleByName,
3 documentationOfSCLValue, sclValueRef, possibleModuleSourceText]
6 include "./CurrentModuleRepository"
9 importJava "org.simantics.scl.compiler.elaboration.modules.SCLValue" where
12 @JavaName getDocumentation
13 documentationOfSCLValue_ :: SCLValue -> <Proc> Maybe String
15 documentationOfSCLValue value = fromMaybe "" (documentationOfSCLValue_ value)
17 importJava "org.simantics.scl.compiler.module.repository.ModuleRepository" where
18 // data ModuleRepository
19 // defined in CurrentModuleRepository
22 unsafeSclValueByName_ :: ModuleRepository -> String -> <Proc> a
25 sclValueRef_ :: ModuleRepository -> String -> <Proc> Maybe SCLValue
27 @JavaName getSourceRepository
28 moduleSourceRepositoryOf :: ModuleRepository -> ModuleSourceRepository
31 moduleByName_ :: ModuleRepository -> String -> <Proc> Failable Module
33 importJava "org.simantics.scl.compiler.source.repository.ModuleSourceRepository" where
34 data ModuleSourceRepository
36 @JavaName getModuleNames
37 sclModuleNames_ :: ModuleSourceRepository -> [String]
39 @JavaName getPossibleSourceText
40 possibleModuleSourceText_ :: ModuleSourceRepository -> String -> <Proc> Maybe String
42 importJava "org.simantics.scl.compiler.errors.Failable" where
45 didSucceed :: Failable a -> Boolean
46 getResult :: Failable a -> Maybe a
48 unsafeSclValueByName :: String -> <Proc> a
49 unsafeSclValueByName = unsafeSclValueByName_ MODULE_REPOSITORY
51 sclValueRef name = sclValueRef_ MODULE_REPOSITORY name
53 possibleUnsafeSclValueByName :: String -> <Proc> Maybe a
54 possibleUnsafeSclValueByName name = Just (unsafeSclValueByName name) `catch` \(_ :: Exception) -> Nothing
56 sclModuleNames :: <Proc> [String]
57 sclModuleNames = sclModuleNames_ (moduleSourceRepositoryOf MODULE_REPOSITORY)
59 moduleByName :: String -> <Proc> Maybe Module
60 moduleByName name = getResult failable
62 failable = moduleByName_ MODULE_REPOSITORY name
64 possibleModuleSourceText :: String -> <Proc> Maybe String
65 possibleModuleSourceText name = possibleModuleSourceText_ (moduleSourceRepositoryOf MODULE_REPOSITORY) name