2 export = [possibleUnsafeSclValueByName, unsafeSclValueByName, sclModuleNames, moduleByName,
3 documentationOfSCLValue, sclValueRef, possibleModuleSourceText, flushModuleRepository,
4 flushDefaultModuleRepository]
7 include "./CurrentModuleRepository"
10 importJava "org.simantics.scl.compiler.elaboration.modules.SCLValue" where
13 @JavaName getDocumentation
14 documentationOfSCLValue_ :: SCLValue -> <Proc> Maybe String
16 documentationOfSCLValue value = fromMaybe "" (documentationOfSCLValue_ value)
18 importJava "org.simantics.scl.compiler.module.repository.ModuleRepository" where
19 // data ModuleRepository
20 // defined in CurrentModuleRepository
23 unsafeSclValueByName_ :: ModuleRepository -> String -> <Proc> a
26 sclValueRef_ :: ModuleRepository -> String -> <Proc> Maybe SCLValue
28 @JavaName getSourceRepository
29 moduleSourceRepositoryOf :: ModuleRepository -> ModuleSourceRepository
32 moduleByName_ :: ModuleRepository -> String -> <Proc> Failable Module
35 flushModuleRepository :: ModuleRepository -> <Proc> ()
37 importJava "org.simantics.scl.compiler.source.repository.ModuleSourceRepository" where
38 data ModuleSourceRepository
40 @JavaName getModuleNames
41 sclModuleNames_ :: ModuleSourceRepository -> [String]
43 @JavaName getPossibleSourceText
44 possibleModuleSourceText_ :: ModuleSourceRepository -> String -> <Proc> Maybe String
46 importJava "org.simantics.scl.compiler.errors.Failable" where
49 didSucceed :: Failable a -> Boolean
50 getResult :: Failable a -> Maybe a
52 unsafeSclValueByName :: String -> <Proc> a
53 unsafeSclValueByName = unsafeSclValueByName_ MODULE_REPOSITORY
55 sclValueRef name = sclValueRef_ MODULE_REPOSITORY name
57 flushDefaultModuleRepository :: <Proc> ()
58 flushDefaultModuleRepository = flushModuleRepository MODULE_REPOSITORY
60 possibleUnsafeSclValueByName :: String -> <Proc> Maybe a
61 possibleUnsafeSclValueByName name = Just (unsafeSclValueByName name) `catch` \(_ :: Exception) -> Nothing
63 sclModuleNames :: <Proc> [String]
64 sclModuleNames = sclModuleNames_ (moduleSourceRepositoryOf MODULE_REPOSITORY)
66 moduleByName :: String -> <Proc> Maybe Module
67 moduleByName name = getResult failable
69 failable = moduleByName_ MODULE_REPOSITORY name
71 possibleModuleSourceText :: String -> <Proc> Maybe String
72 possibleModuleSourceText name = possibleModuleSourceText_ (moduleSourceRepositoryOf MODULE_REPOSITORY) name