Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

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.

ShortcutFactory Description
SGraph()SGraphFactory::eINSTANCEFactory for yakindu statechart models 
SText()StextFactory::eINSTANCEFactory for yakindu expressions
SyncGraph()SyncgraphFactory::eINSTANCEFactory for sgraph extensions
SyncText()SynctextFactory::eINSTANCEFactory for stext extensions
SCCExp()SCChartsExpFactory::eINSTANCEFactory for SCCharts specific expression extensions
SCL()SclFactory::eINSTANCEFactory 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.


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.


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 until the given statement is reached.

SCL Goto Extensions

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


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...

  • No labels