de.uni_luebeck.isp.tessla.tessla_compiler

Members list

Concise view

Type members

Classlikes

sealed trait BlockState

Trait representing the internal states of IntermediateCodeUtils

Trait representing the internal states of IntermediateCodeUtils

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
object InCatch.type
object InElse.type
object InIf.type
object InTry.type
object Out.type
case object BuildInfo

This object was generated by sbt-buildinfo.

This object was generated by sbt-buildinfo.

Attributes

Graph
Supertypes
trait Singleton
trait Product
trait Mirror
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Self type

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

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

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type

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

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

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type

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

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

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type
case class ExtendedSpecification(spec: Specification, usageInfo: Option[Map[Identifier, Set[Identifier]]], lazyVars: Option[Set[Identifier]], inlining: Option[Set[Identifier]], traitInfo: Option[Map[Identifier, Set[String]]])

TeSSLa Core AST with additional information from the preprocessing

TeSSLa Core AST with additional information from the preprocessing

Attributes

inlining

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

lazyVars

Set of all variables that shall be translated with lazy assignments

spec

The TeSSLa Core AST

usageInfo

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

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
case object InCatch extends BlockState

Attributes

Graph
Supertypes
trait Singleton
trait Product
trait Mirror
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Self type
InCatch.type
case object InElse extends BlockState

Attributes

Graph
Supertypes
trait Singleton
trait Product
trait Mirror
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Self type
InElse.type
case object InIf extends BlockState

Attributes

Graph
Supertypes
trait Singleton
trait Product
trait Mirror
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Self type
InIf.type
case object InTry extends BlockState

Attributes

Graph
Supertypes
trait Singleton
trait Product
trait Mirror
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Self type
InTry.type

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

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

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type

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.

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.

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type

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

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

Attributes

Companion:
class
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
class IntermediateCodeUtils(stmts: Seq[ImpLanStmt], blockState: Seq[BlockState], ifTryStack: Seq[Seq[ImpLanStmt]], elseCatchStack: Seq[Seq[ImpLanStmt]], condStack: Seq[Seq[Seq[ImpLanExpr]]])

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

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

Attributes

blockState

Stack keeping track of unclosed ifs/try-catchs

condStack

Stack of conditions of if blocks which are not closed yet

elseCatchStack

Stack of statements in Else/Catch blocks which are not closed yet

ifTryStack

Stack of statements in If/Try blocks which are not closed yet

stmts

Sequence of already generated statements

Companion:
object
Graph
Supertypes
class Object
trait Matchable
class Any

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

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

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
abstract class NonStreamCodeGeneratorInterface[ExpressionType, StatementType](extSpec: ExtendedSpecification)

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

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

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
case object Out extends BlockState

Attributes

Graph
Supertypes
trait Singleton
trait Product
trait Mirror
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Self type
Out.type

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

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

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
abstract class StreamCodeGeneratorInterface[CollectionType, ReturnType]

Abstract base class for the translation of stream code

Abstract base class for the translation of stream code

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
case class TypeArgManagement(resMap: Map[Identifier, TypeExpression], unappliedArgs: Seq[TypeExpression])

Class for managing type arguments

Class for managing type arguments

Attributes

resMap

Map representing depiction from type arg names to types

unappliedArgs

Types where type application has already been processed but not the expression where the types are applied to

Companion:
object
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any

Attributes

Companion:
class
Graph
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type

Value members

Concrete methods

def TesslaCoreToIntermediate(ioInterface: Boolean): TesslaPhase[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

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

Attributes

ioInterface

Indicates whether the generated code shall be able to read/write from/to stdio

Concrete fields

val UnusedVarRemove: TesslaPhase[(SourceListing, Set[String]), SourceListing]

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.

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.

Attributes

extSource

The input source listing and a set of variables which are not removed even if they are unused

Returns:

A source listing without unused variables