Documentation Language: Swift

Structure

MTLModule

Represents an MTL (Model-to-Text Language) module.

struct MTLModule

Overview

An MTL module is the root container for a text generation specification, containing source metamodels, templates, queries, macros, and module-level configuration. MTL modules define transformations from models to text using declarative templates and imperative control structures.

Overview

MTL modules follow a structured approach to model-to-text transformation:

Module Inheritance

MTL supports module inheritance through the extends mechanism, allowing templates to be specialized and overridden in module hierarchies:

// Base module
let baseModule = MTLModule(
    name: "BaseGen",
    metamodels: ["Model": modelPackage],
    templates: ["generate": baseTemplate]
)

// Derived module (overrides base template)
let derivedModule = MTLModule(
    name: "DerivedGen",
    metamodels: ["Model": modelPackage],
    extends: "BaseGen",
    templates: ["generate": overridingTemplate]
)

Example Usage

let module = MTLModule(
    name: "ClassGenerator",
    metamodels: ["UML": umlPackage],
    templates: ["generateClass": classTemplate],
    queries: ["isPublic": isPublicQuery],
    macros: ["repeat": repeatMacro],
    encoding: "UTF-8"
)

Topics

Operators

?
==(_:_:)

Compares two MTL modules for equality.

Initializers

?
init(name:metamodels:extends:imports:templates:queries:macros:encoding:)

Creates a new MTL module with the specified configuration.

Instance Properties

V
encoding

The default character encoding for generated files.

V
extends

Optional parent module name for inheritance.

V
imports

Imported module names for namespace composition.

V
macros

Macros indexed by their names.

V
metamodels

Source metamodels indexed by their namespace aliases.

V
name

The name of the MTL module.

V
queries

Queries indexed by their names.

V
templates

Templates indexed by their names.

Instance Methods

F
hash(into:)

Hashes the essential components of the module into the given hasher.

Default Implementations

Relationships

Conforms To

See Also

Module Structure

S
MTLTemplate

Represents an MTL template for text generation.

S
MTLQuery

Represents an MTL query - a side-effect-free operation returning a value.