Navigation
Synopsis Map the concepts in Rascal source code to a subtree of a course.
Description Each Rascal library file defines some module M that may declare concepts M/c1, M/c2, .... as indicated by embedded @doc annotations. How are these concepts included in a Tutor course? The answer is a mapping file remote-concepts.value that may exist at the top level of a course. It is a value of type list[tuple[str root, loc libFile]], i.e. a list of tuples that associates a root (a concept name) with a Rascal source file. All concepts in libFile become subconcepts of that root. Moving the documentation for a library file is as simple as changing a single entry is this mapping.
Examples This is an excerpt from the remote-concepts.value for the Rascal course:
[<"Rascal/Libraries/Prelude",|std:///Boolean.rsc|>,
<"Rascal/Libraries/Prelude",|std:///DateTime.rsc|>,
<"Rascal/Libraries/Prelude",|std:///List.rsc|>,
<"Rascal/Libraries/Prelude",|std:///Map.rsc|>,
...
<"Rascal/Libraries/Prelude",|std:///ParseTree.rsc|>,
<"Rascal/Libraries",|std:///util/Benchmark.rsc|>,
<"Rascal/Libraries",|std:///util/Eval.rsc|>,
<"Rascal/Libraries",|eclipse-std:///util/IDE.rsc|>,
<"Rascal/Libraries",|std:///util/Math.rsc|>]
This establishes that the function now that is declared in the DateTime.rsc library files will become Rascal/Libraries/Prelude/DateTime/now.
Pitfalls Be carefull to avoid spaces, since the value reader does not like them.
Is this page unclear, or have you spotted an error? Please add a comment below and help us to improve it. For all other questions and remarks, visit ask.rascal-mpl.org.