module stratego/xtc/Repository signature sorts XtcKey constructors Tool : String -> XtcKey Repository : XtcKey Import : XtcKey Imported : String -> XtcKey XTC : Table /** * Loading the repository */ strategies /** * Returns the location of the XTC repository. * * @type _ -> String */ xtc-location = <get-config> "-r" <+ <getenv> "XTC_REPOSITORY" <+ GetInternalDefaultXtcRepository external GetInternalDefaultXtcRepository(|) xtc-read = ?rep ; not(<table-get>(XTC, Imported(rep))) ; where(<table-put>(XTC, Repository, [rep])) ; log(|Vomit(),<conc-strings>("Reading repository ",rep)) ; read-repository-file ; log(|Vomit(),<conc-strings>("Read repository ",rep)) ; <table-putlist(table-append)>(XTC, <id>) ; log(|Vomit(),"Repository stored in table") ; <table-put>(XTC, Imported(rep), []) ; log(|Vomit(),"Registered repository as imported") // read-repository-file = xtc-import = where( repeat(<table-get>(XTC, Import) ; filter(xtc-read) ; not([])) ) xtc-load = log(|Vomit(),"Loading repository") ; where( <table-get>(XTC, Repository) <+ xtc-location ; xtc-read ; xtc-import ) ; log(|Vomit(),"Loaded repository ")