Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
E
EMADL2CPP
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
2
Issues
2
List
Boards
Labels
Service Desk
Milestones
Iterations
Merge Requests
0
Merge Requests
0
Requirements
Requirements
List
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Test Cases
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issue
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
monticore
EmbeddedMontiArc
generators
EMADL2CPP
Commits
deab14f1
Commit
deab14f1
authored
Jan 10, 2019
by
Evgeny Kusmenko
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'VersionUp' into 'master'
Update to new EMA Version See merge request
!16
parents
b9d79ffc
65ce1dd9
Pipeline
#96517
passed with stages
in 6 minutes and 42 seconds
Changes
4
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
33 additions
and
33 deletions
+33
-33
pom.xml
pom.xml
+4
-4
src/main/java/de/monticore/lang/monticar/emadl/generator/EMADLAbstractSymtab.java
...re/lang/monticar/emadl/generator/EMADLAbstractSymtab.java
+2
-2
src/main/java/de/monticore/lang/monticar/emadl/generator/EMADLGenerator.java
...nticore/lang/monticar/emadl/generator/EMADLGenerator.java
+23
-23
src/test/java/de/monticore/lang/monticar/emadl/SymtabTest.java
...est/java/de/monticore/lang/monticar/emadl/SymtabTest.java
+4
-4
No files found.
pom.xml
View file @
deab14f1
...
...
@@ -8,18 +8,18 @@
<groupId>
de.monticore.lang.monticar
</groupId>
<artifactId>
embedded-montiarc-emadl-generator
</artifactId>
<version>
0.2.
5
-SNAPSHOT
</version>
<version>
0.2.
6
-SNAPSHOT
</version>
<!-- == PROJECT DEPENDENCIES ============================================= -->
<properties>
<!-- .. SE-Libraries .................................................. -->
<emadl.version>
0.2.
3
</emadl.version>
<emadl.version>
0.2.
4
</emadl.version>
<CNNTrain.version>
0.2.5
</CNNTrain.version>
<cnnarch-mxnet-generator.version>
0.2.
5
</cnnarch-mxnet-generator.version>
<cnnarch-mxnet-generator.version>
0.2.
7
</cnnarch-mxnet-generator.version>
<cnnarch-caffe2-generator.version>
0.2.7-SNAPSHOT
</cnnarch-caffe2-generator.version>
<embedded-montiarc-math-opt-generator>
0.1.
0
</embedded-montiarc-math-opt-generator>
<embedded-montiarc-math-opt-generator>
0.1.
2-SNAPSHOT
</embedded-montiarc-math-opt-generator>
<!-- .. Libraries .................................................. -->
<guava.version>
18.0
</guava.version>
...
...
src/main/java/de/monticore/lang/monticar/emadl/generator/EMADLAbstractSymtab.java
View file @
deab14f1
...
...
@@ -23,7 +23,7 @@ package de.monticore.lang.monticar.emadl.generator;
import
de.monticore.ModelingLanguageFamily
;
import
de.monticore.io.paths.ModelPath
;
import
de.monticore.lang.embeddedmontiarc.LogConfig
;
import
de.monticore.lang.embeddedmontiarc.
embeddedmontiarc._symboltable.ConstantPortSymbol
;
import
de.monticore.lang.embeddedmontiarc.
helper.ConstantPortHelper
;
import
de.monticore.lang.monticar.emadl._symboltable.EMADLLanguage
;
import
de.monticore.lang.monticar.enumlang._symboltable.EnumLangLanguage
;
import
de.monticore.lang.monticar.generator.cpp.converter.MathConverter
;
...
...
@@ -62,7 +62,7 @@ public class EMADLAbstractSymtab {
}
public
static
Scope
createSymTab
(
String
...
modelPath
)
{
ConstantPort
Symbol
.
resetLastID
();
ConstantPort
Helper
.
resetLastID
();
MathConverter
.
resetIDs
();
ThreadingOptimizer
.
resetID
();
ModelingLanguageFamily
fam
=
new
ModelingLanguageFamily
();
...
...
src/main/java/de/monticore/lang/monticar/emadl/generator/EMADLGenerator.java
View file @
deab14f1
...
...
@@ -24,8 +24,8 @@ import com.google.common.base.Charsets;
import
com.google.common.base.Joiner
;
import
com.google.common.base.Splitter
;
import
com.google.common.io.Resources
;
import
de.monticore.lang.embeddedmontiarc.embeddedmontiarc._symboltable.ComponentSymbol
;
import
de.monticore.lang.embeddedmontiarc.embeddedmontiarc._symboltable.
Expanded
ComponentInstanceSymbol
;
import
de.monticore.lang.embeddedmontiarc.embeddedmontiarc._symboltable.
cncModel.EMA
ComponentSymbol
;
import
de.monticore.lang.embeddedmontiarc.embeddedmontiarc._symboltable.
instanceStructure.EMA
ComponentInstanceSymbol
;
import
de.monticore.lang.math._symboltable.MathStatementsSymbol
;
import
de.monticore.lang.monticar.cnnarch.CNNArchGenerator
;
import
de.monticore.lang.monticar.cnnarch._symboltable.ArchitectureSymbol
;
...
...
@@ -102,7 +102,7 @@ public class EMADLGenerator {
public
void
generate
(
String
modelPath
,
String
qualifiedName
)
throws
IOException
,
TemplateException
{
setModelsPath
(
modelPath
);
TaggingResolver
symtab
=
EMADLAbstractSymtab
.
createSymTabAndTaggingResolver
(
getModelsPath
());
ComponentSymbol
component
=
symtab
.<
ComponentSymbol
>
resolve
(
qualifiedName
,
ComponentSymbol
.
KIND
).
orElse
(
null
);
EMAComponentSymbol
component
=
symtab
.<
EMAComponentSymbol
>
resolve
(
qualifiedName
,
EMA
ComponentSymbol
.
KIND
).
orElse
(
null
);
List
<
String
>
splitName
=
Splitters
.
DOT
.
splitToList
(
qualifiedName
);
String
componentName
=
splitName
.
get
(
splitName
.
size
()
-
1
);
...
...
@@ -113,22 +113,22 @@ public class EMADLGenerator {
System
.
exit
(
1
);
}
E
xpandedComponentInstanceSymbol
instance
=
component
.
getEnclosingScope
().<
ExpandedComponentInstanceSymbol
>
resolve
(
instanceName
,
Expanded
ComponentInstanceSymbol
.
KIND
).
get
();
E
MAComponentInstanceSymbol
instance
=
component
.
getEnclosingScope
().<
EMAComponentInstanceSymbol
>
resolve
(
instanceName
,
EMA
ComponentInstanceSymbol
.
KIND
).
get
();
generateFiles
(
symtab
,
instance
,
symtab
);
}
public
void
generateFiles
(
TaggingResolver
taggingResolver
,
E
xpandedComponentInstanceSymbol
c
omponentSymbol
,
Scope
symtab
)
throws
IOException
{
List
<
FileContent
>
fileContents
=
generateStrings
(
taggingResolver
,
c
omponentSymbol
,
symtab
);
public
void
generateFiles
(
TaggingResolver
taggingResolver
,
E
MAComponentInstanceSymbol
EMAC
omponentSymbol
,
Scope
symtab
)
throws
IOException
{
List
<
FileContent
>
fileContents
=
generateStrings
(
taggingResolver
,
EMAC
omponentSymbol
,
symtab
);
for
(
FileContent
fileContent
:
fileContents
)
{
emamGen
.
generateFile
(
fileContent
);
}
}
public
List
<
FileContent
>
generateStrings
(
TaggingResolver
taggingResolver
,
E
xpanded
ComponentInstanceSymbol
componentInstanceSymbol
,
Scope
symtab
){
public
List
<
FileContent
>
generateStrings
(
TaggingResolver
taggingResolver
,
E
MA
ComponentInstanceSymbol
componentInstanceSymbol
,
Scope
symtab
){
List
<
FileContent
>
fileContents
=
new
ArrayList
<>();
Set
<
E
xpanded
ComponentInstanceSymbol
>
allInstances
=
new
HashSet
<>();
Set
<
E
MA
ComponentInstanceSymbol
>
allInstances
=
new
HashSet
<>();
generateComponent
(
fileContents
,
allInstances
,
taggingResolver
,
componentInstanceSymbol
,
symtab
);
...
...
@@ -159,20 +159,20 @@ public class EMADLGenerator {
}
protected
void
generateComponent
(
List
<
FileContent
>
fileContents
,
Set
<
E
xpanded
ComponentInstanceSymbol
>
allInstances
,
Set
<
E
MA
ComponentInstanceSymbol
>
allInstances
,
TaggingResolver
taggingResolver
,
E
xpanded
ComponentInstanceSymbol
componentInstanceSymbol
,
E
MA
ComponentInstanceSymbol
componentInstanceSymbol
,
Scope
symtab
){
allInstances
.
add
(
componentInstanceSymbol
);
ComponentSymbol
c
omponentSymbol
=
componentInstanceSymbol
.
getComponentType
().
getReferencedSymbol
();
EMAComponentSymbol
EMAC
omponentSymbol
=
componentInstanceSymbol
.
getComponentType
().
getReferencedSymbol
();
/* remove the following two lines if the component symbol full name bug with generic variables is fixed */
c
omponentSymbol
.
setFullName
(
null
);
c
omponentSymbol
.
getFullName
();
EMAC
omponentSymbol
.
setFullName
(
null
);
EMAC
omponentSymbol
.
getFullName
();
/* */
Optional
<
ArchitectureSymbol
>
architecture
=
componentInstanceSymbol
.
getSpannedScope
().
resolve
(
""
,
ArchitectureSymbol
.
KIND
);
Optional
<
MathStatementsSymbol
>
mathStatements
=
c
omponentSymbol
.
getSpannedScope
().
resolve
(
"MathStatements"
,
MathStatementsSymbol
.
KIND
);
Optional
<
MathStatementsSymbol
>
mathStatements
=
EMAC
omponentSymbol
.
getSpannedScope
().
resolve
(
"MathStatements"
,
MathStatementsSymbol
.
KIND
);
EMADLCocos
.
checkAll
(
componentInstanceSymbol
);
...
...
@@ -195,7 +195,7 @@ public class EMADLGenerator {
}
}
public
void
generateCNN
(
List
<
FileContent
>
fileContents
,
TaggingResolver
taggingResolver
,
E
xpanded
ComponentInstanceSymbol
instance
,
ArchitectureSymbol
architecture
){
public
void
generateCNN
(
List
<
FileContent
>
fileContents
,
TaggingResolver
taggingResolver
,
E
MA
ComponentInstanceSymbol
instance
,
ArchitectureSymbol
architecture
){
Map
<
String
,
String
>
contentMap
=
cnnArchGenerator
.
generateStrings
(
architecture
);
String
fullName
=
instance
.
getFullName
().
replaceAll
(
"\\."
,
"_"
);
...
...
@@ -238,16 +238,16 @@ public class EMADLGenerator {
return
component
;
}
public
void
generateMathComponent
(
List
<
FileContent
>
fileContents
,
TaggingResolver
taggingResolver
,
E
xpandedComponentInstanceSymbol
c
omponentSymbol
,
MathStatementsSymbol
mathStatementsSymbol
){
public
void
generateMathComponent
(
List
<
FileContent
>
fileContents
,
TaggingResolver
taggingResolver
,
E
MAComponentInstanceSymbol
EMAC
omponentSymbol
,
MathStatementsSymbol
mathStatementsSymbol
){
fileContents
.
add
(
new
FileContent
(
emamGen
.
generateString
(
taggingResolver
,
c
omponentSymbol
,
mathStatementsSymbol
),
c
omponentSymbol
));
emamGen
.
generateString
(
taggingResolver
,
EMAC
omponentSymbol
,
mathStatementsSymbol
),
EMAC
omponentSymbol
));
}
public
void
generateSubComponents
(
List
<
FileContent
>
fileContents
,
Set
<
E
xpandedComponentInstanceSymbol
>
allInstances
,
TaggingResolver
taggingResolver
,
Expanded
ComponentInstanceSymbol
componentInstanceSymbol
,
Scope
symtab
){
public
void
generateSubComponents
(
List
<
FileContent
>
fileContents
,
Set
<
E
MAComponentInstanceSymbol
>
allInstances
,
TaggingResolver
taggingResolver
,
EMA
ComponentInstanceSymbol
componentInstanceSymbol
,
Scope
symtab
){
fileContents
.
add
(
new
FileContent
(
emamGen
.
generateString
(
taggingResolver
,
componentInstanceSymbol
,
(
MathStatementsSymbol
)
null
),
componentInstanceSymbol
));
String
lastNameWithoutArrayPart
=
""
;
for
(
E
xpanded
ComponentInstanceSymbol
instanceSymbol
:
componentInstanceSymbol
.
getSubComponents
())
{
for
(
E
MA
ComponentInstanceSymbol
instanceSymbol
:
componentInstanceSymbol
.
getSubComponents
())
{
int
arrayBracketIndex
=
instanceSymbol
.
getName
().
indexOf
(
"["
);
boolean
generateComponentInstance
=
true
;
if
(
arrayBracketIndex
!=
-
1
)
{
...
...
@@ -262,10 +262,10 @@ public class EMADLGenerator {
}
}
public
List
<
FileContent
>
generateCNNTrainer
(
Set
<
E
xpanded
ComponentInstanceSymbol
>
allInstances
,
String
mainComponentName
)
{
public
List
<
FileContent
>
generateCNNTrainer
(
Set
<
E
MA
ComponentInstanceSymbol
>
allInstances
,
String
mainComponentName
)
{
List
<
FileContent
>
fileContents
=
new
ArrayList
<>();
for
(
E
xpanded
ComponentInstanceSymbol
componentInstance
:
allInstances
)
{
ComponentSymbol
component
=
componentInstance
.
getComponentType
().
getReferencedSymbol
();
for
(
E
MA
ComponentInstanceSymbol
componentInstance
:
allInstances
)
{
EMA
ComponentSymbol
component
=
componentInstance
.
getComponentType
().
getReferencedSymbol
();
Optional
<
ArchitectureSymbol
>
architecture
=
component
.
getSpannedScope
().
resolve
(
""
,
ArchitectureSymbol
.
KIND
);
if
(
architecture
.
isPresent
())
{
...
...
src/test/java/de/monticore/lang/monticar/emadl/SymtabTest.java
View file @
deab14f1
...
...
@@ -20,8 +20,8 @@
*/
package
de.monticore.lang.monticar.emadl
;
import
de.monticore.lang.embeddedmontiarc.embeddedmontiarc._symboltable.ComponentSymbol
;
import
de.monticore.lang.embeddedmontiarc.embeddedmontiarc._symboltable.
Expanded
ComponentInstanceSymbol
;
import
de.monticore.lang.embeddedmontiarc.embeddedmontiarc._symboltable.
cncModel.EMA
ComponentSymbol
;
import
de.monticore.lang.embeddedmontiarc.embeddedmontiarc._symboltable.
instanceStructure.EMA
ComponentInstanceSymbol
;
import
de.monticore.lang.monticar.emadl._parser.EMADLParser
;
import
de.monticore.symboltable.Scope
;
import
de.se_rwth.commons.logging.Log
;
...
...
@@ -49,8 +49,8 @@ public class SymtabTest extends AbstractSymtabTest {
@Test
public
void
testAlexnet
(){
Scope
symTab
=
createSymTab
(
"src/test/resources/models"
);
ComponentSymbol
a
=
symTab
.<
ComponentSymbol
>
resolve
(
"ResNet34"
,
ComponentSymbol
.
KIND
).
orElse
(
null
);
E
xpandedComponentInstanceSymbol
c
=
symTab
.<
ExpandedComponentInstanceSymbol
>
resolve
(
"resNet34"
,
Expanded
ComponentInstanceSymbol
.
KIND
).
orElse
(
null
);
EMAComponentSymbol
a
=
symTab
.<
EMAComponentSymbol
>
resolve
(
"ResNet34"
,
EMA
ComponentSymbol
.
KIND
).
orElse
(
null
);
E
MAComponentInstanceSymbol
c
=
symTab
.<
EMAComponentInstanceSymbol
>
resolve
(
"resNet34"
,
EMA
ComponentInstanceSymbol
.
KIND
).
orElse
(
null
);
assertNotNull
(
a
);
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment