Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
JastAdd
RagConnect
Commits
087daac8
Commit
087daac8
authored
Aug 27, 2020
by
René Schöne
Browse files
Use mustache submodule.
parent
75f973c2
Pipeline
#7700
passed with stage
in 1 minute and 22 seconds
Changes
12
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
.gitmodules
View file @
087daac8
[submodule "relast-preprocessor"]
path = relast-preprocessor
url = ../relast-preprocessor.git
[submodule "ragconnect.base/src/main/jastadd/mustache"]
path = ragconnect.base/src/main/jastadd/mustache
url = ../mustache
ragconnect.base/build.gradle
View file @
087daac8
...
...
@@ -51,7 +51,7 @@ task newVersion() {
}
}
File
genSrc
=
file
(
"src/gen/java"
)
;
File
genSrc
=
file
(
"src/gen/java"
)
sourceSets
.
main
.
java
.
srcDir
genSrc
idea
.
module
.
generatedSourceDirs
+=
genSrc
...
...
@@ -67,16 +67,20 @@ jar {
archiveBaseName
=
'ragconnect'
}
File
preprocessorGrammar
=
file
(
'../relast-preprocessor/src/main/jastadd/RelAst.relast'
)
File
ragConnectGrammar
=
file
(
'./src/main/jastadd/RagConnect.relast'
)
File
intermediateGrammar
=
file
(
'./src/main/jastadd/intermediate/MustacheNodes.relast'
)
File
mustacheGrammar
=
file
(
'./src/main/jastadd/mustache/Mustache.relast'
)
task
relast
(
type:
JavaExec
)
{
group
=
'Build'
main
=
"-jar"
args
=
[
"../libs/relast.jar"
,
"../relast-
preprocessor
/src/main/jastadd/RelAst.relast"
,
"./src/main/jastadd/R
agConnect
.relast"
,
"./src/main/jastadd/MustacheNodes.relast"
,
"./src/main/jastadd/YAML.relast"
,
preprocessor
Grammar
,
r
agConnect
Grammar
,
intermediateGrammar
,
mustacheGrammar
,
"--listClass=java.util.ArrayList"
,
"--jastAddList=JastAddList"
,
"--useJastAddNames"
,
...
...
@@ -86,10 +90,10 @@ task relast(type: JavaExec) {
]
inputs
.
files
(
"../libs/relast.jar"
,
"../relast-
preprocessor
/src/main/jastadd/RelAst.relast"
,
"./src/main/jastadd/R
agConnect
.relast"
,
"./src/main/jastadd/MustacheNodes.relast"
,
"./src/main/jastadd/YAML.relast"
)
preprocessor
Grammar
,
r
agConnect
Grammar
,
intermediateGrammar
,
mustacheGrammar
)
outputs
.
files
(
"./src/gen/jastadd/RagConnect.ast"
,
"./src/gen/jastadd/RagConnect.jadd"
,
"./src/gen/jastadd/RagConnectRefResolver.jadd"
,
...
...
ragconnect.base/src/main/jastadd/
backend/
Configuration.jadd
→
ragconnect.base/src/main/jastadd/Configuration.jadd
View file @
087daac8
File moved
ragconnect.base/src/main/jastadd/Printing.jrag
View file @
087daac8
aspect Printing {
String ASTNode.PRINT_INDENT = " ";
syn String MappingDefinitionType.prettyPrint();
eq JavaMappingDefinitionType.prettyPrint() = getType().getName();
eq JavaArrayMappingDefinitionType.prettyPrint() = getType().getName() + "[]";
...
...
@@ -10,66 +8,4 @@ aspect Printing {
generateAbstractGrammar(sb);
return sb.toString();
}
syn String Document.prettyPrint() {
StringBuilder sb = new StringBuilder();
sb.append("# RagConnect created at ").append(java.time.Instant.now()).append("\n");
for (ComplexElement element : getComplexElementList()) {
element.prettyPrint(sb, false, "");
}
if (sb.charAt(sb.length() - 1) != '\n') {
sb.append("\n");
}
return sb.toString();
}
syn StringBuilder Element.prettyPrint(StringBuilder sb, boolean printIndent, String indent);
eq ValueElement.prettyPrint(StringBuilder sb, boolean printIndent, String indent) {
sb.append(getValue());
return sb;
}
eq StringElement.prettyPrint(StringBuilder sb, boolean printIndent, String indent) {
sb.append("\"").append(getValue()).append("\"");
return sb;
}
eq ListElement.prettyPrint(StringBuilder sb, boolean printIndent, String indent) {
if (isEmpty()) {
sb.append("[]");
} else {
for (Element element : getElementList()) {
sb.append(indent).append("- ");
element.prettyPrint(sb, false, indent + PRINT_INDENT);
sb.append("\n");
}
// delete last newline
sb.deleteCharAt(sb.length() - 1);
}
return sb;
}
eq KeyValuePair.prettyPrint(StringBuilder sb, boolean printIndent, String indent) {
if (printIndent) sb.append(indent);
sb.append(getKey()).append(": ");
if (getValue().isComplex() && !getValue().isEmpty()) {
sb.append("\n");
getValue().prettyPrint(sb, true, indent + PRINT_INDENT); //);
} else {
getValue().prettyPrint(sb, false, indent);
}
return sb;
}
eq MappingElement.prettyPrint(StringBuilder sb, boolean printIndent, String indent) {
if (isEmpty()) {
sb.append("{}");
} else {
boolean first = true;
for (KeyValuePair pair : getKeyValuePairList()) {
if (!first || printIndent) sb.append(indent);
first = false;
pair.prettyPrint(sb, false, indent); // + PRINT_INDENT
sb.append("\n");
}
// delete last newline
sb.deleteCharAt(sb.length() - 1);
}
return sb;
}
}
ragconnect.base/src/main/jastadd/YAML.jrag
deleted
100644 → 0
View file @
75f973c2
aspect Navigation {
eq Document.getChild().program() = null;
eq Document.getChild().ragconnect() = null;
eq Document.getChild().containedFile() = null;
eq Document.getChild().containedFileName() = getFileName();
syn boolean Element.isComplex() = false;
eq ComplexElement.isComplex() = true;
syn boolean Element.isEmpty() = false;
eq MappingElement.isEmpty() = getNumKeyValuePair() == 0;
eq ListElement.isEmpty() = getNumElement() == 0;
}
aspect Helper {
public static ValueElement ValueElement.of(int value) {
return new ValueElement(String.valueOf(value));
}
public static ValueElement ValueElement.of(boolean value) {
return new ValueElement(String.valueOf(value));
}
public static ValueElement ValueElement.of(String value) {
return new ValueElement(value);
}
public static StringElement StringElement.of(String value) {
return new StringElement(value);
}
public void MappingElement.addKeyValuePair(String key, Element value) {
addKeyValuePair(new KeyValuePair(key, value));
}
}
ragconnect.base/src/main/jastadd/YAML.relast
deleted
100644 → 0
View file @
75f973c2
Document ::= <FileName> ComplexElement* ;
abstract Element ;
abstract ComplexElement : Element ;
MappingElement : ComplexElement ::= KeyValuePair* ;
KeyValuePair : ComplexElement ::= <Key> Value:Element ;
ListElement : ComplexElement ::= Element* ;
abstract SimpleElement : Element ;
ValueElement : SimpleElement ::= <Value> ;
StringElement : SimpleElement ::= <Value> ;
ragconnect.base/src/main/jastadd/
backend
/Generation.jadd
→
ragconnect.base/src/main/jastadd/
intermediate
/Generation.jadd
View file @
087daac8
File moved
ragconnect.base/src/main/jastadd/
backend
/Mappings.jrag
→
ragconnect.base/src/main/jastadd/
intermediate
/Mappings.jrag
View file @
087daac8
File moved
ragconnect.base/src/main/jastadd/MustacheNodes.relast
→
ragconnect.base/src/main/jastadd/
intermediate/
MustacheNodes.relast
View file @
087daac8
File moved
ragconnect.base/src/main/jastadd/
backend
/MustacheNodesToYAML.jrag
→
ragconnect.base/src/main/jastadd/
intermediate2mustache
/MustacheNodesToYAML.jrag
View file @
087daac8
...
...
@@ -60,7 +60,7 @@ aspect MustacheNodesToYAML {
}
root.addKeyValuePair("TokenComponents", tokenComponents);
doc.
addComplex
Element(root);
doc.
setRoot
Element(root);
return doc;
}
...
...
@@ -151,5 +151,11 @@ aspect MustacheNodesToYAML {
}
return innerMappingDefinitions;
}
}
aspect Navigation {
eq Document.getChild().program() = null;
eq Document.getChild().ragconnect() = null;
eq Document.getChild().containedFile() = null;
eq Document.getChild().containedFileName() = getFileName();
}
mustache
@
2bf86903
Subproject commit 2bf869031ffc69bdb88dafd2cb4464a26502ae2b
ragconnect.base/src/main/java/org/jastadd/ragconnect/compiler/SimpleMain.java
View file @
087daac8
...
...
@@ -82,7 +82,7 @@ public class SimpleMain {
firstLevel
.
addKeyValuePair
(
goalPoses
);
root
.
setValue
(
firstLevel
);
doc
.
addComplex
Element
(
root
);
doc
.
setRoot
Element
(
root
);
System
.
out
.
println
(
doc
.
prettyPrint
());
}
...
...
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