SCL Extensions

Version 5.1 by ssm on 2013/05/03 18:30

There are several extensions implemented to ease the work with a scl model. (de.cau.cs.kieler.scl.extensions)

SCL Factory Extensions

You need several Factories to handle all aspects of Yakindu (SGraph + SText) and the extended SCChart models. The SCL Factory Extension provides you with shortcuts for all factories.

Shortcut

Factory

 Description

SGraph()

SGraphFactory::eINSTANCE

Factory for yakindu statechart models 

SText()

StextFactory::eINSTANCE

Factory for yakindu expressions

SyncGraph()

SyncgraphFactory::eINSTANCE

Factory for sgraph extensions

SyncText()

SynctextFactory::eINSTANCE

Factory for stext extensions

SCCExp()

SCChartsExpFactory::eINSTANCE

Factory for SCCharts specific expression extensions

SCL()

SclFactory::eINSTANCE

Factory for SCL

SCL Create Extensions

coming soon...

SCL  Naming Extensions

coming soon...

SCL Ordering Extensions

The Ordering Extensions provide functions, which can be used in the xtend sort context.

Method

Description

def int compareSCLRegionStateOrder(SyncState, SyncState) 

Sorts states according to their type. Initial states come first, final states last.

SCL Statement Extensions

coming soon...

SCL Thread Extensions

The Thread Extensions provide functions to ease the handling of SCL threads and statements in the context of SCL threads.

Method

Description

def AbstractThread getThread(Instruction)

def AbstractThread getThread(Statement) 

Returns the SCL thread of a SCL statement or SCL instruction.

def AbstractThread getMainThread(Instruction)

def AbstractThread getMainThread(Statement) 

Returns the main thread of a SCL program.

def boolean isInSameThreadAs(Instruction, Instruction)

def boolean isInSameThreadAs(Statement, Statement)

Returns true, if both instructions/statements are in the same thread.

def boolean isInMainThread(Instruction)

def boolean isInMainThread(Statement)

Returns true, if the instruction/statement runs in the main thread.

def boolean isInThread(Instruction, AbstractThread)

def boolean isInThread(Statement, AbstractThread)

Returns true, if the instruction/statement runs in the given thread.

def boolean contains(AbstractThread, Instruction)

def boolean contains(AbstractThread, Statements)

Returns true, if the thread contains the given instruction/statement.

def dropPrevious(AbstractThread, Statement)

def dropPrevious(List<Statement>, Statement) 

Drops all preceeding statements in a thread or a list of statements before the given statement.

SCL Goto Extensions

To help with the handling of the goto statement and its target instruction, use the SCL Goto Extensions.

Method

Description

def Statement getTargetStatement(Goto)

def Statement getTargetStatement(Goto, AbstractThread)

Returns the target statement of a goto instruction (in the context of the (given) thread).

def boolean targetExists(Goto)

def boolean targetExists(Goto, AbstractThread)

Returns true, if the target of a goto instruction exists (in the context of the (given) thread).

def InstructionStatement getInstructionStatement(Statement) 

Returns the first valid InstructionStatement in a thread after the given statement. May return null, if no further InstructionStatement exists.

To get a valid instruction form a goto jump, one can write "goto.getTargetStatement?.getInstructionStatement?.instruction". The result value will be the instruction or null.

def getIncomingGotos(Statement)

Returns a list of all gotos that target the given statement. If you want to retrieve the count of incoming goto jumps, use "getIncomingGotos.size".

SCL Expression Extensions

coming soon...

SCL Dependency Extensions

coming soon...

SCL Basic Block Extensions

coming soon...

Tags:
Created by ssm on 2013/05/03 15:22