Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
monticore
EmbeddedMontiArc
generators
EMAM2Cpp
Commits
14784b20
Commit
14784b20
authored
Jan 15, 2019
by
Evgeny Kusmenko
Browse files
Merge branch 'kaminski-dev' into 'master'
Kaminski dev See merge request
!26
parents
c268d60a
14c47456
Pipeline
#97560
passed with stages
in 61 minutes and 57 seconds
Changes
226
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
.gitignore
View file @
14784b20
target
nppBackup
.project
.settings
.classpath
.idea
target/
.git
nppBackup
pom.xml.tag
pom.xml.releaseBackup
pom.xml.versionsBackup
pom.xml.next
release.properties
dependency-reduced-pom.xml
buildNumber.properties
.mvn/timing.properties
# Avoid ignoring Maven wrapper jar file (.jar files are usually ignored)
!/.mvn/wrapper/maven-wrapper.jar
# Don't track IntelliJ files
.idea/
*.iml
# Don't track .DS_STORE files
*.DS_STORE
# Don't track VSCode/Eclipse Files
.classpath
.project
.vscode/
.settings/
pom.xml
View file @
14784b20
...
...
@@ -23,243 +23,218 @@
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<modelVersion>
4.0.0
</modelVersion>
<!-- == PROJECT COORDINATES ============================================= -->
<groupId>
de.monticore.lang.monticar
</groupId>
<artifactId>
embedded-montiarc-math-generator
</artifactId>
<version>
0.1.3-SNAPSHOT
</version>
<!-- == PROJECT DEPENDENCIES ============================================= -->
<properties>
<!-- .. SE-Libraries .................................................. -->
<se-commons.version>
1.7.7
</se-commons.version>
<Embedded-MontiArc-Math.version>
0.1.4-SNAPSHOT
</Embedded-MontiArc-Math.version>
<!-- .. Libraries .................................................. -->
<guava.version>
18.0
</guava.version>
<junit.version>
4.12
</junit.version>
<logback.version>
1.1.2
</logback.version>
<!-- .. Plugins ....................................................... -->
<assembly.plugin>
2.5.4
</assembly.plugin>
<compiler.plugin>
3.8.0
</compiler.plugin>
<source.plugin>
2.4
</source.plugin>
<shade.plugin>
2.4.3
</shade.plugin>
<jacoco.plugin>
0.8.1
</jacoco.plugin>
<!-- Classifiers -->
<grammars.classifier>
grammars
</grammars.classifier>
<cli.classifier>
cli
</cli.classifier>
<!-- .. Misc .......................................................... -->
<java.version>
1.8
</java.version>
<project.build.sourceEncoding>
UTF-8
</project.build.sourceEncoding>
<project.reporting.outputEncoding>
UTF-8
</project.reporting.outputEncoding>
<github.global.server>
github
</github.global.server>
</properties>
<dependencies>
<dependency>
<groupId>
org.antlr
</groupId>
<artifactId>
antlr4-runtime
</artifactId>
<version>
4.7.1
</version>
</dependency>
<dependency>
<groupId>
de.se_rwth.commons
</groupId>
<artifactId>
se-commons-logging
</artifactId>
<version>
${se-commons.version}
</version>
</dependency>
<dependency>
<groupId>
com.google.guava
</groupId>
<artifactId>
guava
</artifactId>
<version>
${guava.version}
</version>
</dependency>
<!-- MontiCore Dependencies -->
<dependency>
<groupId>
de.se_rwth.commons
</groupId>
<artifactId>
se-commons-groovy
</artifactId>
<version>
${se-commons.version}
</version>
</dependency>
<dependency>
<groupId>
de.monticore.lang.monticar
</groupId>
<artifactId>
embedded-montiarc-math
</artifactId>
<version>
${Embedded-MontiArc-Math.version}
</version>
</dependency>
<dependency>
<groupId>
de.monticore.lang.monticar
</groupId>
<artifactId>
embedded-montiarc-math
</artifactId>
<version>
${Embedded-MontiArc-Math.version}
</version>
<classifier>
${grammars.classifier}
</classifier>
<scope>
provided
</scope>
</dependency>
<dependency>
<groupId>
montiarc.verification
</groupId>
<artifactId>
montiarc-execution-order
</artifactId>
<version>
4.0.1-SNAPSHOT
</version>
</dependency>
<dependency>
<groupId>
org.freemarker
</groupId>
<artifactId>
freemarker
</artifactId>
<version>
2.3.23
</version>
</dependency>
<dependency>
<groupId>
commons-cli
</groupId>
<artifactId>
commons-cli
</artifactId>
<version>
1.4
</version>
</dependency>
<!-- .. Test Libraries ............................................... -->
<dependency>
<groupId>
junit
</groupId>
<artifactId>
junit
</artifactId>
<version>
${junit.version}
</version>
<scope>
test
</scope>
</dependency>
<dependency>
<groupId>
ch.qos.logback
</groupId>
<artifactId>
logback-classic
</artifactId>
<version>
${logback.version}
</version>
</dependency>
</dependencies>
<!-- == PROJECT BUILD SETTINGS =========================================== -->
<build>
<plugins>
<!-- to add copyright information automatically-->
<plugin>
<groupId>
com.mycila
</groupId>
<artifactId>
license-maven-plugin
</artifactId>
<version>
3.0
</version>
<configuration>
<header>
${project.baseUri}/src/license/se/license.txt
</header>
<properties>
<owner>
Michael von Wenckstern
</owner>
<email>
vonwenckstern@se-rwth.de
</email>
</properties>
<excludes>
<exclude>
**/README
</exclude>
<exclude>
src/test/resources/**
</exclude>
<exclude>
src/main/resources/**
</exclude>
<exclude>
src/license/**
</exclude>
</excludes>
</configuration>
<executions>
<execution>
<goals>
<goal>
format
</goal>
</goals>
<phase>
process-sources
</phase>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>
maven-deploy-plugin
</artifactId>
<version>
2.8.1
</version>
</plugin>
<!-- Other Configuration -->
<plugin>
<artifactId>
maven-compiler-plugin
</artifactId>
<version>
${compiler.plugin}
</version>
<configuration>
<useIncrementalCompilation>
true
</useIncrementalCompilation>
<source>
${java.version}
</source>
<target>
${java.version}
</target>
</configuration>
</plugin>
<plugin>
<artifactId>
maven-assembly-plugin
</artifactId>
<version>
3.1.0
</version>
<executions>
<execution>
<id>
jar-with-dependencies
</id>
<phase>
package
</phase>
<goals>
<goal>
single
</goal>
</goals>
<configuration>
<archive>
<manifest>
<mainClass>
de.monticore.lang.monticar.generator.cpp.GeneratorCppCli
</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>
jar-with-dependencies
</descriptorRef>
</descriptorRefs>
</configuration>
</execution>
</executions>
</plugin>
<!-- Test coverage -->
<plugin>
<groupId>
org.jacoco
</groupId>
<artifactId>
jacoco-maven-plugin
</artifactId>
<version>
${jacoco.plugin}
</version>
<executions>
<execution>
<id>
pre-unit-test
</id>
<goals>
<goal>
prepare-agent
</goal>
</goals>
</execution>
<execution>
<id>
post-unit-test
</id>
<phase>
test
</phase>
<goals>
<goal>
report
</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- Source Jar Configuration -->
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-source-plugin
</artifactId>
<version>
${source.plugin}
</version>
<executions>
<execution>
<id>
create source jar
</id>
<phase>
package
</phase>
<goals>
<goal>
jar-no-fork
</goal>
</goals>
<configuration>
<excludeResources>
false
</excludeResources>
<includes>
<include>
**/*.java
</include>
<include>
**/*.ftl
</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<modelVersion>
4.0.0
</modelVersion>
<!-- == PROJECT COORDINATES ============================================= -->
<groupId>
de.monticore.lang.monticar
</groupId>
<artifactId>
embedded-montiarc-math-generator
</artifactId>
<version>
0.1.4-SNAPSHOT
</version>
<!-- == PROJECT DEPENDENCIES ============================================= -->
<properties>
<!-- .. SE-Libraries .................................................. -->
<!--<monticore.version>5.0.0</monticore.version>-->
<!--<se-commons.version>1.7.7</se-commons.version>-->
<!--<mc.grammars.assembly.version>0.0.6-SNAPSHOT</mc.grammars.assembly.version>-->
<!--<Common-MontiCar.version>0.0.14-SNAPSHOT</Common-MontiCar.version>-->
<!--<Embedded-MontiArc.version>0.0.18-SNAPSHOT</Embedded-MontiArc.version>-->
<!--<Embedded-MontiArc-Behaviour.version>0.0.14-SNAPSHOT</Embedded-MontiArc-Behaviour.version>-->
<!--<Math.version>0.0.19-SNAPSHOT</Math.version>-->
<!--<Embedded-MontiArc-Math.version>0.0.19-SNAPSHOT</Embedded-MontiArc-Math.version>-->
<!--<tagging.version>0.0.4</tagging.version>-->
<Embedded-MontiArc-Math.version>
0.1.5-SNAPSHOT
</Embedded-MontiArc-Math.version>
<!-- .. Libraries .................................................. -->
<guava.version>
18.0
</guava.version>
<junit.version>
4.12
</junit.version>
<logback.version>
1.1.2
</logback.version>
<jscience.version>
4.3.1
</jscience.version>
<!-- .. Plugins ....................................................... -->
<!--<monticore.plugin>4.5.3.1</monticore.plugin>-->
<assembly.plugin>
2.5.4
</assembly.plugin>
<compiler.plugin>
3.8.0
</compiler.plugin>
<source.plugin>
2.4
</source.plugin>
<shade.plugin>
2.4.3
</shade.plugin>
<jacoco.plugin>
0.8.1
</jacoco.plugin>
<!-- Classifiers -->
<grammars.classifier>
grammars
</grammars.classifier>
<cli.classifier>
cli
</cli.classifier>
<!-- .. Misc .......................................................... -->
<java.version>
1.8
</java.version>
<project.build.sourceEncoding>
UTF-8
</project.build.sourceEncoding>
<project.reporting.outputEncoding>
UTF-8
</project.reporting.outputEncoding>
<github.global.server>
github
</github.global.server>
</properties>
<dependencies>
<dependency>
<groupId>
com.google.guava
</groupId>
<artifactId>
guava
</artifactId>
<version>
${guava.version}
</version>
</dependency>
<!-- MontiCore Dependencies -->
<dependency>
<groupId>
de.monticore.lang.monticar
</groupId>
<artifactId>
embedded-montiarc-math
</artifactId>
<version>
${Embedded-MontiArc-Math.version}
</version>
</dependency>
<dependency>
<groupId>
de.monticore.lang.monticar
</groupId>
<artifactId>
embedded-montiarc-math
</artifactId>
<version>
${Embedded-MontiArc-Math.version}
</version>
<classifier>
${grammars.classifier}
</classifier>
<scope>
provided
</scope>
</dependency>
<dependency>
<groupId>
montiarc.verification
</groupId>
<artifactId>
montiarc-execution-order
</artifactId>
<version>
4.0.1-SNAPSHOT
</version>
</dependency>
<dependency>
<groupId>
org.freemarker
</groupId>
<artifactId>
freemarker
</artifactId>
<version>
2.3.23
</version>
</dependency>
<dependency>
<groupId>
commons-cli
</groupId>
<artifactId>
commons-cli
</artifactId>
<version>
1.4
</version>
</dependency>
<!-- .. Test Libraries ............................................... -->
<dependency>
<groupId>
junit
</groupId>
<artifactId>
junit
</artifactId>
<version>
${junit.version}
</version>
<scope>
test
</scope>
</dependency>
<dependency>
<groupId>
ch.qos.logback
</groupId>
<artifactId>
logback-classic
</artifactId>
<version>
${logback.version}
</version>
</dependency>
<dependency>
<groupId>
org.jscience
</groupId>
<artifactId>
jscience
</artifactId>
<version>
${jscience.version}
</version>
</dependency>
</dependencies>
<!-- == PROJECT BUILD SETTINGS =========================================== -->
<build>
<plugins>
<plugin>
<artifactId>
maven-deploy-plugin
</artifactId>
<version>
2.8.1
</version>
</plugin>
<!-- Other Configuration -->
<plugin>
<artifactId>
maven-compiler-plugin
</artifactId>
<version>
${compiler.plugin}
</version>
<configuration>
<useIncrementalCompilation>
true
</useIncrementalCompilation>
<source>
${java.version}
</source>
<target>
${java.version}
</target>
</configuration>
</plugin>
<plugin>
<artifactId>
maven-assembly-plugin
</artifactId>
<version>
3.1.0
</version>
<executions>
<execution>
<id>
jar-with-dependencies
</id>
<phase>
package
</phase>
<goals>
<goal>
single
</goal>
</goals>
<configuration>
<archive>
<manifest>
<mainClass>
de.monticore.lang.monticar.generator.cpp.GeneratorCppCli
</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>
jar-with-dependencies
</descriptorRef>
</descriptorRefs>
</configuration>
</execution>
</executions>
</plugin>
<!-- Test coverage -->
<plugin>
<groupId>
org.jacoco
</groupId>
<artifactId>
jacoco-maven-plugin
</artifactId>
<version>
${jacoco.plugin}
</version>
<executions>
<execution>
<id>
pre-unit-test
</id>
<goals>
<goal>
prepare-agent
</goal>
</goals>
</execution>
<execution>
<id>
post-unit-test
</id>
<phase>
test
</phase>
<goals>
<goal>
report
</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- Source Jar Configuration -->
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-source-plugin
</artifactId>
<version>
${source.plugin}
</version>
<executions>
<execution>
<id>
create source jar
</id>
<phase>
package
</phase>
<goals>
<goal>
jar-no-fork
</goal>
</goals>
<configuration>
<excludeResources>
false
</excludeResources>
<includes>
<include>
**/*.java
</include>
<include>
**/*.ftl
</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-surefire-plugin
</artifactId>
<version>
2.
19
.1
</version>
<version>
2.
22
.1
</version>
<configuration>
<useSystemClassLoader>
false
</useSystemClassLoader>
<useSystemClassLoader>
false
</useSystemClassLoader>
</configuration>
</plugin>
<plugin>
...
...
@@ -271,40 +246,42 @@
<maxmem>
256m
</maxmem>
<!-- aggregated reports for multi-module projects -->
<aggregate>
true
</aggregate>
<check/>
</configuration>
</plugin>
<plugin>
<groupId>
org.codehaus.mojo
</groupId>
<artifactId>
license-maven-plugin
</artifactId>
<version>
1.14
</version>
<dependencies>
<dependency>
<groupId>
org.apache.maven.doxia
</groupId>
<artifactId>
doxia-core
</artifactId>
<version>
1.6
</version>
</dependency>
<dependency>
<groupId>
org.apache.maven.doxia
</groupId>
<artifactId>
doxia-site-renderer
</artifactId>
<version>
1.6
</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
<!-- == DISTRIBUTION ==================================================== -->
<distributionManagement>
<repository>
<id>
se-nexus
</id>
<url>
https://nexus.se.rwth-aachen.de/content/repositories/embeddedmontiarc-releases/
</url>
</repository>
<snapshotRepository>
<id>
se-nexus
</id>
<url>
https://nexus.se.rwth-aachen.de/content/repositories/embeddedmontiarc-snapshots/
</url>
</snapshotRepository>
</distributionManagement>
</plugin>
<plugin>
<groupId>
org.codehaus.mojo
</groupId>
<artifactId>
license-maven-plugin
</artifactId>
<version>
1.14
</version>
<dependencies>
<dependency>
<groupId>
org.apache.maven.doxia
</groupId>
<artifactId>
doxia-core
</artifactId>
<version>
1.6
</version>
</dependency>
<dependency>
<groupId>
org.apache.maven.doxia
</groupId>
<artifactId>
doxia-site-renderer
</artifactId>
<version>
1.6
</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
<!-- == DISTRIBUTION ==================================================== -->
<distributionManagement>
<repository>
<id>
se-nexus
</id>
<url>
https://nexus.se.rwth-aachen.de/content/repositories/embeddedmontiarc-releases/
</url>
</repository>
<snapshotRepository>
<id>
se-nexus
</id>
<url>
https://nexus.se.rwth-aachen.de/content/repositories/embeddedmontiarc-snapshots/
</url>
</snapshotRepository>
</distributionManagement>
</project>
src/main/java/de/monticore/lang/monticar/generator/EventConnectInstruction.java
0 → 100644
View file @
14784b20
package
de.monticore.lang.monticar.generator
;
public
class
EventConnectInstruction
extends
ConnectInstruction
{
protected
String
eventName
;
public
EventConnectInstruction
(
String
name
)
{
super
();
eventName
=
name
;
}
public
EventConnectInstruction
(
String
name
,
Variable
variable1
,
Variable
variable2
)
{
super
(
variable1
,
variable2
);
eventName
=
name
;
}
public
EventConnectInstruction
(
String
name
,
Variable
variable1
,
boolean
useThis1
,
Variable
variable2
,
boolean
useThis2
)
{
super
(
variable1
,
useThis1
,
variable2
,
useThis2
);
eventName
=
name
;
}
public
String
getEventName
()
{
return
eventName
;
}
public
void
setEventName
(
String
eventName
)
{
this
.
eventName
=
eventName
;
}
@Override
public
String
getTargetLanguageInstruction
()
{
return
null
;
}
@Override
public
boolean
isTargetCodeInstruction
()
{
return
false
;
}
@Override
public
boolean
isExecuteInstruction
()
{
return
false
;
}
}
src/main/java/de/monticore/lang/monticar/generator/ExecuteInstruction.java
View file @
14784b20
...
...
@@ -31,6 +31,7 @@ public class ExecuteInstruction implements Instruction {
BluePrint
bluePrint
;
String
threadName
=
null
;
boolean
canBeThreaded
=
false
;
boolean
dynamic
=
false
;
public
static
int
threadCounter
=
0
;
public
ExecuteInstruction
(
String
componentName
,
BluePrint
bluePrint
,
boolean
canBeThreaded
)
{
...
...
@@ -65,6 +66,20 @@ public class ExecuteInstruction implements Instruction {
return
threadName
;
}
protected
String
addConditionIfDynamic
(
String
exec
){
if
(
isDynamic
()){
String
inst
=
componentName
.
substring
(
0
,
componentName
.
indexOf
(
"["
));
String
id
=
componentName
.
substring
(
componentName
.
indexOf
(
"["
)+
1
,
componentName
.
lastIndexOf
(
"]"
));
return
String
.
format
(
"if(__%s_connected[%s]){ executeDynamicConnects(&(%s)); %s}"
,
inst
,
id
,
componentName
,
exec
);
}
<