From 087daac8e8315b153134331b9bfdb503f30a1bd2 Mon Sep 17 00:00:00 2001 From: rschoene <rene.schoene@tu-dresden.de> Date: Thu, 27 Aug 2020 11:35:20 +0200 Subject: [PATCH] Use mustache submodule. --- .gitmodules | 3 + ragconnect.base/build.gradle | 22 ++++--- .../jastadd/{backend => }/Configuration.jadd | 0 .../src/main/jastadd/Printing.jrag | 64 ------------------- ragconnect.base/src/main/jastadd/YAML.jrag | 31 --------- ragconnect.base/src/main/jastadd/YAML.relast | 9 --- .../{backend => intermediate}/Generation.jadd | 0 .../{backend => intermediate}/Mappings.jrag | 0 .../{ => intermediate}/MustacheNodes.relast | 0 .../MustacheNodesToYAML.jrag | 8 ++- ragconnect.base/src/main/jastadd/mustache | 1 + .../ragconnect/compiler/SimpleMain.java | 2 +- 12 files changed, 25 insertions(+), 115 deletions(-) rename ragconnect.base/src/main/jastadd/{backend => }/Configuration.jadd (100%) delete mode 100644 ragconnect.base/src/main/jastadd/YAML.jrag delete mode 100644 ragconnect.base/src/main/jastadd/YAML.relast rename ragconnect.base/src/main/jastadd/{backend => intermediate}/Generation.jadd (100%) rename ragconnect.base/src/main/jastadd/{backend => intermediate}/Mappings.jrag (100%) rename ragconnect.base/src/main/jastadd/{ => intermediate}/MustacheNodes.relast (100%) rename ragconnect.base/src/main/jastadd/{backend => intermediate2mustache}/MustacheNodesToYAML.jrag (96%) create mode 160000 ragconnect.base/src/main/jastadd/mustache diff --git a/.gitmodules b/.gitmodules index 9971a64..0cf1e8a 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ [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 diff --git a/ragconnect.base/build.gradle b/ragconnect.base/build.gradle index 5fd73e5..153a3be 100644 --- a/ragconnect.base/build.gradle +++ b/ragconnect.base/build.gradle @@ -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/RagConnect.relast", - "./src/main/jastadd/MustacheNodes.relast", - "./src/main/jastadd/YAML.relast", + preprocessorGrammar, + ragConnectGrammar, + 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/RagConnect.relast", - "./src/main/jastadd/MustacheNodes.relast", - "./src/main/jastadd/YAML.relast") + preprocessorGrammar, + ragConnectGrammar, + intermediateGrammar, + mustacheGrammar) outputs.files("./src/gen/jastadd/RagConnect.ast", "./src/gen/jastadd/RagConnect.jadd", "./src/gen/jastadd/RagConnectRefResolver.jadd", diff --git a/ragconnect.base/src/main/jastadd/backend/Configuration.jadd b/ragconnect.base/src/main/jastadd/Configuration.jadd similarity index 100% rename from ragconnect.base/src/main/jastadd/backend/Configuration.jadd rename to ragconnect.base/src/main/jastadd/Configuration.jadd diff --git a/ragconnect.base/src/main/jastadd/Printing.jrag b/ragconnect.base/src/main/jastadd/Printing.jrag index 74607ae..89b9b82 100644 --- a/ragconnect.base/src/main/jastadd/Printing.jrag +++ b/ragconnect.base/src/main/jastadd/Printing.jrag @@ -1,6 +1,4 @@ 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; - } } diff --git a/ragconnect.base/src/main/jastadd/YAML.jrag b/ragconnect.base/src/main/jastadd/YAML.jrag deleted file mode 100644 index 93dd0f3..0000000 --- a/ragconnect.base/src/main/jastadd/YAML.jrag +++ /dev/null @@ -1,31 +0,0 @@ -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)); - } -} diff --git a/ragconnect.base/src/main/jastadd/YAML.relast b/ragconnect.base/src/main/jastadd/YAML.relast deleted file mode 100644 index 94f4ab2..0000000 --- a/ragconnect.base/src/main/jastadd/YAML.relast +++ /dev/null @@ -1,9 +0,0 @@ -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> ; diff --git a/ragconnect.base/src/main/jastadd/backend/Generation.jadd b/ragconnect.base/src/main/jastadd/intermediate/Generation.jadd similarity index 100% rename from ragconnect.base/src/main/jastadd/backend/Generation.jadd rename to ragconnect.base/src/main/jastadd/intermediate/Generation.jadd diff --git a/ragconnect.base/src/main/jastadd/backend/Mappings.jrag b/ragconnect.base/src/main/jastadd/intermediate/Mappings.jrag similarity index 100% rename from ragconnect.base/src/main/jastadd/backend/Mappings.jrag rename to ragconnect.base/src/main/jastadd/intermediate/Mappings.jrag diff --git a/ragconnect.base/src/main/jastadd/MustacheNodes.relast b/ragconnect.base/src/main/jastadd/intermediate/MustacheNodes.relast similarity index 100% rename from ragconnect.base/src/main/jastadd/MustacheNodes.relast rename to ragconnect.base/src/main/jastadd/intermediate/MustacheNodes.relast diff --git a/ragconnect.base/src/main/jastadd/backend/MustacheNodesToYAML.jrag b/ragconnect.base/src/main/jastadd/intermediate2mustache/MustacheNodesToYAML.jrag similarity index 96% rename from ragconnect.base/src/main/jastadd/backend/MustacheNodesToYAML.jrag rename to ragconnect.base/src/main/jastadd/intermediate2mustache/MustacheNodesToYAML.jrag index 2894d3a..67fc12f 100644 --- a/ragconnect.base/src/main/jastadd/backend/MustacheNodesToYAML.jrag +++ b/ragconnect.base/src/main/jastadd/intermediate2mustache/MustacheNodesToYAML.jrag @@ -60,7 +60,7 @@ aspect MustacheNodesToYAML { } root.addKeyValuePair("TokenComponents", tokenComponents); - doc.addComplexElement(root); + doc.setRootElement(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(); } diff --git a/ragconnect.base/src/main/jastadd/mustache b/ragconnect.base/src/main/jastadd/mustache new file mode 160000 index 0000000..2bf8690 --- /dev/null +++ b/ragconnect.base/src/main/jastadd/mustache @@ -0,0 +1 @@ +Subproject commit 2bf869031ffc69bdb88dafd2cb4464a26502ae2b diff --git a/ragconnect.base/src/main/java/org/jastadd/ragconnect/compiler/SimpleMain.java b/ragconnect.base/src/main/java/org/jastadd/ragconnect/compiler/SimpleMain.java index ee9ed04..b04e477 100644 --- a/ragconnect.base/src/main/java/org/jastadd/ragconnect/compiler/SimpleMain.java +++ b/ragconnect.base/src/main/java/org/jastadd/ragconnect/compiler/SimpleMain.java @@ -82,7 +82,7 @@ public class SimpleMain { firstLevel.addKeyValuePair(goalPoses); root.setValue(firstLevel); - doc.addComplexElement(root); + doc.setRootElement(root); System.out.println(doc.prettyPrint()); } -- GitLab