Package-level declarations

Types

Link copied to clipboard

A generic exception that can be thrown while building the configuration. This exception indicates that the requested configuration is not possible.

Link copied to clipboard

This class holds configuration options for the inference of certain constructs and auto-guessing when executing language frontends.

Link copied to clipboard
annotation class PopulatedByPass(val value: KClass<out Pass>)

This annotation denotes that, this property is populates by a pass. Optionally, also specifying which Pass class is responsible.

Link copied to clipboard
@Target(allowedTargets = [AnnotationTarget.FUNCTION])
annotation class ResolveInFrontend(val method: String)

Functions marked with this annotation are using features of the ScopeManager to resolve symbols (or scopes) during frontend parsing. This is something which we discourage. However, in non-context free languages such as C++ this is unavoidable to some degree.

Link copied to clipboard

The scope manager builds a multi-tree structure of nodes associated to a scope. These scopes capture the validity of certain (Variable-, Field-, Record-)declarations but are also used to identify outer scopes that should be the target of a jump (continue, break, throw).

Link copied to clipboard

The configuration for the TranslationManager holds all information that is used during the translation.

Link copied to clipboard

Main entry point for all source code translation for all language front-ends.

Link copied to clipboard
class TranslationResult(val translationManager: TranslationManager, val scopeManager: ScopeManager) : Node, StatisticsHolder

The global (intermediate) result of the translation. A [ ] will initially populate it and a [ ] can extend it.