p

de.uni_luebeck.isp.tessla

tessla_compiler

package tessla_compiler

Ordering
  1. Alphabetic
Visibility
  1. Public
  2. Protected

Package Members

  1. package backends
  2. package preprocessing

Type Members

  1. sealed trait BlockState extends AnyRef

    Trait representing the internal states of IntermediateCodeUtils

  2. case class ExtendedSpecification(spec: core.TesslaAST.Core.Specification, usageInfo: Option[Map[core.TesslaAST.Core.Identifier, Set[core.TesslaAST.Core.Identifier]]], lazyVars: Option[Set[core.TesslaAST.Core.Identifier]], inlining: Option[Set[core.TesslaAST.Core.Identifier]]) extends Product with Serializable

    TeSSLa Core AST with additional information from the preprocessing

    TeSSLa Core AST with additional information from the preprocessing

    spec

    The TeSSLa Core AST

    usageInfo

    Map indication which Identifier is used in the definitions of other identifiers

    lazyVars

    Set of all variables that shall be translated with lazy assignments

    inlining

    Set of all variables which are not translated as variables but inlined (must be final variables)

  3. class IntermediateCodeUtils extends AnyRef

    DSL-Style state class for easy generation of ImpLan code.

    DSL-Style state class for easy generation of ImpLan code. Functions of this class can be called iteratively to produce ImpLan step by step.

  4. class NonStreamCodeGenerator extends AnyRef

    Class for the translation of TeSSLa expressions of non-stream type

  5. class StreamCodeGenerator extends AnyRef

    Class containing functions for the translation of single TeSSLa stream expressions to imperative code

  6. class TesslaCoreToIntermediate extends TranslationPhase[ExtendedSpecification, (SourceListing, Set[String])]

    Class implementing TranslationPhase for the translation from TeSSLa Core to abstract imperative code The translation of stream functions is performed in StreamCodeGenerator The translation of other expressions in NonStreamCodeGenerator

Value Members

  1. case object BuildInfo extends Product with Serializable

    This object was generated by sbt-buildinfo.

  2. object CompilerStdLibIncludeResolver

    Object for providing an IncludeResolver (see IncludeResolvers) that enables overwriting stdlib parts in a compiler-specific way.

  3. object DefinitionOrdering

    Class for calculating a topological sorting on the assignments inside functions and specifications so they can be translated to imperative code

  4. object Diagnostics

    Class containing errors complementing the core errors and additional compiler related warnings

  5. case object InCatch extends BlockState with Product with Serializable
  6. case object InElse extends BlockState with Product with Serializable
  7. case object InIf extends BlockState with Product with Serializable
  8. case object InTry extends BlockState with Product with Serializable
  9. object IntermediateCode

    Class containing subclasses for the representation of abstract imperative code which can afterwards be transduced into Scala/Java/Rust/...

    Class containing subclasses for the representation of abstract imperative code which can afterwards be transduced into Scala/Java/Rust/... code

  10. object IntermediateCodeTypeInference

    Class containing code for determining the type of ImpLan expressions and adding casts.

    Class containing code for determining the type of ImpLan expressions and adding casts. Does not perform type checking in any way. Hence this class should only be used for code which is known to be type correct.

  11. object IntermediateCodeUtils

    Class containing a DSL for easy creation of ImpLanStmt-Blocks and other useful static methods for dealing ImpLan and the translation from TeSSLa

  12. case object Out extends BlockState with Product with Serializable
  13. object UnusedVarRemove extends TranslationPhase[(SourceListing, Set[String]), SourceListing]

    This class is used for removing unused variable declarations from the code.

    This class is used for removing unused variable declarations from the code. Therefore it first creates a map indicating which variable is used where and afterwards removes all variables which are not used in any expression. This phase is especially important since it also removes variables which are not used anymore since their usage was inlined due to lazy usage. Not removing them would probably cause errors because the evaluation of the expression is not possible.

Ungrouped