StreamCodeGeneratorInterface

de.uni_luebeck.isp.tessla.tessla_compiler.StreamCodeGeneratorInterface
abstract class StreamCodeGeneratorInterface[CollectionType, ReturnType]

Abstract base class for the translation of stream code

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes

Members list

Value members

Abstract methods

def produceConstStepCode(id: Identifier, ot: TypeExpression, value: ExpressionOrRef, trigger: ExpressionOrRef, currSrc: CollectionType): ReturnType

Produces code for a x = const(...) expression

Produces code for a x = const(...) expression

Value parameters

currSrc

The source listing the generated block is added to.

id

The id merge is assigned to

ot

Type of the output stream

trigger

Argument expression for triggering stream

value

Argument expressions for const value

Attributes

Returns

The modified source listing

def produceCountStepCode(id: Identifier, cntStream: ExpressionOrRef, currSrc: CollectionType): ReturnType

Produces code for a x = count(...) expression

Produces code for a x = count(...) expression

Value parameters

cntStream

Expression of the stream to be counted

currSrc

The source listing the generated block is added to.

id

The id merge is assigned to

Attributes

Returns

The modified source listing

def produceDefaultFromStepCode(id: Identifier, ot: TypeExpression, stream: ExpressionOrRef, default: ExpressionOrRef, currSrc: CollectionType): ReturnType

Produces code for a x = defaultFrom(...) expression

Produces code for a x = defaultFrom(...) expression

Value parameters

currSrc

The source listing the generated block is added to.

default

The stream parameter of the defaultFrom

id

The id defaultFrom is assigned to

ot

The type of id. Must be Events[...]

stream

The stream parameter of the defaultFrom

Attributes

Returns

The modified source listing

def produceDefaultStepCode(id: Identifier, ot: TypeExpression, stream: ExpressionOrRef, defVal: ExpressionOrRef, currSrc: CollectionType): ReturnType

Produces code for a x = default(...) expression

Produces code for a x = default(...) expression

Value parameters

currSrc

The source listing the generated block is added to.

defVal

The default parameter of the default

id

The id default is assigned to

ot

The type of id. Must be Events[...]

stream

The stream parameter of the default

Attributes

Returns

The modified source listing

def produceDelayStepCode(id: Identifier, delay: ExpressionOrRef, reset: ExpressionOrRef, currSrc: CollectionType): ReturnType

Produces code for a x = delay(...) expression

Produces code for a x = delay(...) expression

Value parameters

currSrc

The source listing the generated block is added to.

delay

The delay-stream parameter of the delay

id

The id delay is assigned to

reset

The reset-stream parameter of the delay

Attributes

Returns

The modified source listing

def produceFilterStepCode(id: Identifier, ot: TypeExpression, value: ExpressionOrRef, condition: ExpressionOrRef, currSrc: CollectionType): ReturnType

Produces code for a x = filter(...) expression

Produces code for a x = filter(...) expression

Value parameters

condition

Argument expressions for filter condition stream

currSrc

The source listing the generated block is added to.

id

The id merge is assigned to

ot

Type of the output stream

value

Argument expressions for filter value stream

Attributes

Returns

The modified source listing

def produceFoldStepCode(id: Identifier, ot: TypeExpression, stream: ExpressionOrRef, init: ExpressionOrRef, function: ExpressionOrRef, currSrc: CollectionType): ReturnType

Produces code for a x = fold(...) expression

Produces code for a x = fold(...) expression

Value parameters

currSrc

The source listing the generated block is added to.

function

Expression of the function used for folding

id

The id merge is assigned to

init

Expression of the initial value for the folding

ot

Type of the output stream

stream

Expression of the stream to be folded

Attributes

Returns

The modified source listing

def produceInitializeStepCode(id: Identifier, ot: TypeExpression, defVal: ExpressionOrRef, currSrc: CollectionType): ReturnType
def produceLastStepCode(id: Identifier, ot: TypeExpression, values: ExpressionOrRef, clock: ExpressionOrRef, currSrc: CollectionType): ReturnType

Produces code for a x = last(...) expression

Produces code for a x = last(...) expression

Value parameters

clock

The trigger/clock-stream parameter of the last

currSrc

The source listing the generated block is added to.

id

The id last is assigned to

ot

The type of id. Must be Events[...]

values

The value-stream parameter of the last

Attributes

Returns

The modified source listing

def produceLiftStepCode(id: Identifier, ot: TypeExpression, args: Seq[ExpressionOrRef], function: ExpressionOrRef, currSrc: CollectionType): ReturnType

Produces code for a x = lift(...) expression

Produces code for a x = lift(...) expression

Value parameters

args

The arguments of the lift except the last one (function)

currSrc

The source listing the generated block is added to.

function

The lifted function

id

The id lift is assigned to

ot

The type of id. Must be Events[...]

Attributes

Returns

The modified source listing

def produceMergeStepCode(id: Identifier, ot: TypeExpression, args: Seq[ExpressionOrRef], currSrc: CollectionType): ReturnType

Produces code for a x = merge(...) expression

Produces code for a x = merge(...) expression

Value parameters

args

The stream expressions to be merged

currSrc

The source listing the generated block is added to.

id

The id merge is assigned to

ot

The type of id. Must be Events[...]

Attributes

Returns

The modified source listing

def produceNativeFunctionStepCode(id: Identifier, ot: TypeExpression, name: String, args: Seq[ExpressionOrRef], typeArgs: Seq[TypeExpression], currSource: CollectionType): ReturnType

Produces code for a x = native:<name>(...) expression

Produces code for a x = native:<name>(...) expression

Value parameters

args

The arguments passed to e

currSource

The source listing where the generated code is attached to.

id

The id which is assigned (must be of stream type)

name

The function name which is applied with args and typeArgs and then assigned

ot

The Type of the output stream

typeArgs

The type arguments passed to e

Attributes

Returns

The modified source listing

def produceNilStepCode(id: Identifier, ot: TypeExpression, currSrc: CollectionType): ReturnType

Produces code for a x = nil expression

Produces code for a x = nil expression

Value parameters

currSrc

The source listing the generated block is added to.

id

The id nil is assigned to

ot

The type of id. Must be Events[...]

Attributes

Returns

The modified source listing

def producePureStepCode(id: Identifier, ot: TypeExpression, valStream: ExpressionOrRef, currSrc: CollectionType): ReturnType

Produces code for a x = pure(...) expression

Produces code for a x = pure(...) expression

Value parameters

currSrc

The source listing the generated block is added to.

id

The id merge is assigned to

ot

Type of the output stream

valStream

Stream to be filtered

Attributes

Returns

The modified source listing

def produceReduceStepCode(id: Identifier, ot: TypeExpression, stream: ExpressionOrRef, function: ExpressionOrRef, currSrc: CollectionType): ReturnType

Produces code for a x = reduce(...) expression

Produces code for a x = reduce(...) expression

Value parameters

currSrc

The source listing the generated block is added to.

function

Expression of the function used for reducing

id

The id merge is assigned to

ot

Type of the output stream

stream

Expression of the stream to be reduced

Attributes

Returns

The modified source listing

def produceSignalLiftStepCode(id: Identifier, ot: TypeExpression, args: Seq[ExpressionOrRef], function: ExpressionOrRef, currSrc: CollectionType): ReturnType

Produces code for a x = slift(...) expression

Produces code for a x = slift(...) expression

Value parameters

args

The arguments of the lift except the last one (function)

currSrc

The source listing the generated block is added to.

function

The lifted function

id

The id slift is assigned to

ot

The type of id. Must be Events[...]

Attributes

Returns

The modified source listing

def produceTimeStepCode(id: Identifier, stream: ExpressionOrRef, currSrc: CollectionType): ReturnType

Produces code for a x = time(...) expression

Produces code for a x = time(...) expression

Value parameters

currSrc

The source listing the generated block is added to.

id

The id time is assigned to

stream

The base-stream parameter of the time

Attributes

Returns

The modified source listing

def produceUnitIfStepCode(id: Identifier, cond: ExpressionOrRef, currSrc: CollectionType): ReturnType

Produces code for a x = unitIf(...) expression

Produces code for a x = unitIf(...) expression

Value parameters

cond

Expression of the stream with the condition for unitIf

currSrc

The source listing the generated block is added to.

id

The id merge is assigned to

Attributes

Returns

The modified source listing

Concrete methods

final protected def externResolution(e: ExpressionOrRef, definitions: Map[Identifier, DefinitionExpression]): ExternExpression
def translateExternSignalExpression(id: Identifier, e: ExternExpression, args: Seq[ExpressionOrRef], typeArgs: Seq[TypeExpression], currSource: CollectionType): ReturnType

Translates an assignment to a stream variable to the corresponding ImpLan Code and attaches it in a given source listing. The assigned expression has to be (and is always in TeSSLa Core) an application.

Translates an assignment to a stream variable to the corresponding ImpLan Code and attaches it in a given source listing. The assigned expression has to be (and is always in TeSSLa Core) an application.

Value parameters

args

The arguments passed to e

currSource

The source listing where the generated code is attached to. It is attached to the stepSource section of the source listing.

e

The expression which is applicated with args and typeArgs and then assigned

id

The id which is assigned (must be of stream type)

typeArgs

The type arguments passed to e

Attributes

Returns

The modified source listing

def translateStreamDefinitionExpression(id: Identifier, expression: DefinitionExpression, definitions: Map[Identifier, DefinitionExpression], currSrc: CollectionType): ReturnType

Translates a definition expression, which is always an assignment of an external signal application to a stream variable and attaches it in a given source collection.

Translates a definition expression, which is always an assignment of an external signal application to a stream variable and attaches it in a given source collection.

Value parameters

currSrc

The source listing where the generated code is attached to.

definitions

The map with all definition expressions

expression

The application expression

id

The id which is assigned (must be of stream type)

Attributes

Returns

The modified source listing