Pull request #255: nre/master

Merge in KIELER/semantics from nre/master to master

* commit '0ad3e29224e402619aa4dca8b3dca7edcf3bb3ba':

sccharts.ui: prevent NPE in EquationSynthesis for unknown figure ID.

language-server: inherit onConnect behavior of KLighD

Merge remote-tracking branch 'origin/master' into nre/master

sccharts.ui: prevent NPE in EquationSynthesis for unknown figure ID.

Also removed some magic strings and ordered some values in default


sccharts.ui: prevent NPE in EquationSynthesis for unknown figure ID.

Also removed some magic strings and ordered some values in default


c.sccharts: basic support for calling the address operator and calling unknown functions with addresses.

c.sccharts: Add every unknown function call as a unique referenced state not directly contained in the root state.

This removes any always-empty states from the root view, as well as

allows for overloading any unknown function, as we do not know the exact

required input types anyway.

build: Updated target platform to latest releases

c.sccharts: support sizeof

c.sccharts: fixed arrays as outputs and array indices as inputs in control statements.

c.sccharts: allow array modifier without constant expression

c.sccharts: added support for nested return statements

Any return statement contained within control loops such as if, switch,

while, etc. is now supported. In each state, the returned value is

assigned to a 'res' value. If for some state there are multiple return

values (for example because multiple ifs may return), a new state

merging all returns into a final return value for the state is created.

c.sccharts: remember function states as soon as they are created.

This allows recursive functions to refer to themselves. However,

recursively expanding the regions or inlining recursive functions cause

a stack overflow as they are probably usually not possible in SCCharts.

c.sccharts: added variables changed by ++ and -- to outputs of control statements.

c.sccharts: support empty for loops (such as "for (;;)")

c.sccharts: removed wrong outputs from control statements.

c.sccharts: connect all in- and outputs of functions correctly.

Some parameters may be modified by a function call (such as arrays or

pointers). With this change, all arrays modified by a known function or

potentially modified by an unknown function are taken through the

function call and put as an output of the function again for further

sequential references to it.

Unified function call behavior.

Fixed buggy view when calling a function twice in the same function.

c.sccharts: code style, externalized strings and removed magic numbers.

c.sccharts: some code style and missing copyright notices

c.sccharts: support for literal chars, strings (char *) and array initializations via the {...} notation.

build: Fixed and updated ELK updatesite

c.sccharts: removed base state to conform to SCCharts syntax/semantics.

c.sccharts: externalized Strings and String conversions, some cleanup.

c.sccharts: only transform additional declarators if they are not null.

sccharts.ui: fixed NPE with arrays in inlined dataflow views.

c.sccharts: support for ++ and --

c.sccharts: Support for non-compound loop bodies. Support for for loops.

For loops are now better supported than before, where now the approach

to show the text for the initializer, condition, and update in the for

loop are shown in text. This is now done by looking up the text directly

in the source file, so that the back translation cannot go wrong

anymore. Also added support for initializations in the initializer

clause of for loops, as they are now added as declarations (without

their initialization) to its region.

c.sccharts: now also supports if statements without compound then/else

language-server: inherit onConnect behavior of KLighD

sccharts: Fixed another problem with bindings in super regions

scg: Fixed Java prio code gen where constructor must be after logic code