Inner workings of RagConnect

Please see API documentation for more details.


RagConnect uses the relast-preprocessor to parse .relast grammar files. This results in an ASTNode of type Program. It further uses a dedicated parser for .connect files containing endpoint-, mapping-, and dependency-definitions. This results in an ASTNode of type RagConnect. The goal is to generate an aspect file containing setters and getters of tokens referred to by endpoint-definitions We use mustache (currently its Java version) making use of partials resulting in a set of .mustache files located in ragconnect.base/src/main/resources. The generation process uses an intermediate NTA of type MRagConnect defined in MustacheNodes.relast to separate this generation concern from the content of the DSL

There are aspect files for Navigation (mainly isX/asX attributes), Analysis (lookup attributes), Printing, backend/Mappings (default mappings) One of the main aspects is backend/Generation containing attributes to construct the MRagConnect NTA and all necessary attributes used within the mustache templates The other main aspect (which is currently not really used) is backend/MustacheNodesToYAML.jrag containing the transformation from a MRagConnect subtree to a Document subtree defined by YAML.relast. This is used to generate a YAML file containing the data used by mustache. It can be used by the default mustache implementation together with the templates.