diff --git a/relast2uml.base/.gitignore b/grammar2uml/.gitignore similarity index 100% rename from relast2uml.base/.gitignore rename to grammar2uml/.gitignore diff --git a/relast2uml.base/build.gradle b/grammar2uml/build.gradle similarity index 65% rename from relast2uml.base/build.gradle rename to grammar2uml/build.gradle index ddeda5fc43e9cb33b34100a7ae6f333bdcc8940f..44378a3b612dff552da7c45bafdf0a00b5976f65 100644 --- a/relast2uml.base/build.gradle +++ b/grammar2uml/build.gradle @@ -1,9 +1,10 @@ apply plugin: 'jastadd' apply plugin: 'application' +apply plugin: 'idea' sourceCompatibility = 1.8 -mainClassName = 'org.jastadd.relast2uml.compiler.Compiler' +mainClassName = 'org.jastadd.grammar2uml.compiler.Compiler' repositories { jcenter() @@ -29,7 +30,7 @@ dependencies { testImplementation group: 'org.assertj', name: 'assertj-core', version: '3.12.1' } -def versionFile = 'src/main/resources/relast2umlVersion.properties' +def versionFile = 'src/main/resources/grammar2umlVersion.properties' def oldProps = new Properties() try { @@ -55,16 +56,15 @@ jar { from { configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) } + configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } } - archiveBaseName = 'relast2uml' + archiveBaseName = 'grammar2uml' } -sourceSets { - main { - java.srcDir "src/gen/java" - } -} +File genSrc = file("src/gen/java") +sourceSets.main.java.srcDir genSrc +idea.module.generatedSourceDirs += genSrc test { useJUnitPlatform() @@ -72,59 +72,53 @@ test { maxHeapSize = '1G' } -jar { - from { - configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } - } -} - task relast(type: JavaExec) { group = 'Build' main = "-jar" doFirst { delete "src/gen/jastadd/*.ast" - delete "src/gen/jastadd/Relast2Uml.jadd" - delete "src/gen/jastadd/Relast2UmlRefResolver.jadd" - delete "src/gen/jastadd/Relast2UmlResolverStubs.jrag" + delete "src/gen/jastadd/Grammar2Uml.jadd" + delete "src/gen/jastadd/Grammar2UmlRefResolver.jadd" + delete "src/gen/jastadd/Grammar2UmlResolverStubs.jrag" mkdir "src/gen/jastadd/" } args = [ "../libs/relast.jar", "../relast.preprocessor/src/main/jastadd/RelAst.relast", - "./src/main/jastadd/Relast2Uml.relast", + "./src/main/jastadd/Grammar2Uml.relast", "./src/main/jastadd/MustacheNodes.relast", "--listClass=java.util.ArrayList", "--jastAddList=JastAddList", "--useJastAddNames", "--file", "--resolverHelper", - "--grammarName=./src/gen/jastadd/Relast2Uml" + "--grammarName=./src/gen/jastadd/Grammar2Uml" ] // inputs.files file("../libs/relast.jar"), // file("../relast.preprocessor/src/main/jastadd/RelAST.relast"), -// file("./src/main/jastadd/Relast2Uml.relast") +// file("./src/main/jastadd/Grammar2Uml.relast") // file("./src/main/jastadd/MustacheNodes.relast") -// outputs.files file("./src/gen/jastadd/Relast2Uml.ast"), -// file("./src/gen/jastadd/Relast2Uml.jadd"), -// file("./src/gen/jastadd/Relast2UmlRefResolver.jadd"), -// file('./src/gen/jastadd/Relast2UmlResolverStubs.jrag') +// outputs.files file("./src/gen/jastadd/Grammar2Uml.ast"), +// file("./src/gen/jastadd/Grammar2Uml.jadd"), +// file("./src/gen/jastadd/Grammar2UmlRefResolver.jadd"), +// file('./src/gen/jastadd/Grammar2UmlResolverStubs.jrag') } jastadd { configureModuleBuild() modules { //noinspection GroovyAssignabilityCheck - module("Relast2Uml") { + module("Grammar2Uml") { java { basedir ".." include "relast.preprocessor/main/**/*.java" include "relast.preprocessor/gen/**/*.java" - include "relast2uml.base/src/main/**/*.java" - include "relast2uml.base/src/gen/**/*.java" + include "grammar2uml/src/main/**/*.java" + include "grammar2uml/src/gen/**/*.java" } jastadd { @@ -132,23 +126,23 @@ jastadd { include "relast.preprocessor/src/main/jastadd/**/*.ast" include "relast.preprocessor/src/main/jastadd/**/*.jadd" include "relast.preprocessor/src/main/jastadd/**/*.jrag" - include "relast2uml.base/src/main/jastadd/**/*.ast" - include "relast2uml.base/src/main/jastadd/**/*.jadd" - include "relast2uml.base/src/main/jastadd/**/*.jrag" - include "relast2uml.base/src/gen/jastadd/**/*.ast" - include "relast2uml.base/src/gen/jastadd/**/*.jadd" - include "relast2uml.base/src/gen/jastadd/**/*.jrag" + include "grammar2uml/src/main/jastadd/**/*.ast" + include "grammar2uml/src/main/jastadd/**/*.jadd" + include "grammar2uml/src/main/jastadd/**/*.jrag" + include "grammar2uml/src/gen/jastadd/**/*.ast" + include "grammar2uml/src/gen/jastadd/**/*.jadd" + include "grammar2uml/src/gen/jastadd/**/*.jrag" } scanner { basedir ".." - include "relast2uml.base/src/main/jastadd/scanner/Header.flex", [-5] + include "grammar2uml/src/main/jastadd/scanner/Header.flex", [-5] include "relast.preprocessor/src/main/jastadd/scanner/Preamble.flex", [-4] include "relast.preprocessor/src/main/jastadd/scanner/Macros.flex", [-3] - include "relast2uml.base/src/main/jastadd/scanner/Macros.flex", [-3] + include "grammar2uml/src/main/jastadd/scanner/Macros.flex", [-3] include "relast.preprocessor/src/main/jastadd/scanner/RulesPreamble.flex", [-2] - include "relast2uml.base/src/main/jastadd/scanner/MappingContent.flex", [-1] - include "relast2uml.base/src/main/jastadd/scanner/Keywords.flex" + include "grammar2uml/src/main/jastadd/scanner/MappingContent.flex", [-1] + include "grammar2uml/src/main/jastadd/scanner/Keywords.flex" include "relast.preprocessor/src/main/jastadd/scanner/Keywords.flex" include "relast.preprocessor/src/main/jastadd/scanner/Symbols.flex", [1] include "relast.preprocessor/src/main/jastadd/scanner/RulesPostamble.flex", [2] @@ -156,9 +150,9 @@ jastadd { parser { basedir ".." - include "relast2uml.base/src/main/jastadd/parser/Preamble.parser" + include "grammar2uml/src/main/jastadd/parser/Preamble.parser" include "relast.preprocessor/src/main/jastadd/parser/RelAst.parser" - include "relast2uml.base/src/main/jastadd/parser/Relast2Uml.parser" + include "grammar2uml/src/main/jastadd/parser/Grammar2Uml.parser" } } } @@ -174,18 +168,18 @@ jastadd { } - module = "Relast2Uml" + module = "Grammar2Uml" - astPackage = 'org.jastadd.relast2uml.ast' + astPackage = 'org.jastadd.grammar2uml.ast' - parser.name = 'Relast2UmlParser' + parser.name = 'Grammar2UmlParser' genDir = 'src/gen/java' buildInfoDir = 'src/gen-res' - scanner.genDir = "src/gen/java/org/jastadd/relast2uml/scanner" - parser.genDir = "src/gen/java/org/jastadd/relast2uml/parser" + scanner.genDir = "src/gen/java/org/jastadd/grammar2uml/scanner" + parser.genDir = "src/gen/java/org/jastadd/grammar2uml/parser" jastaddOptions = ["--lineColumnNumbers", "--List=JastAddList", "--safeLazy", "--visitCheck=true", "--rewrite=cnta", "--cache=all"] } diff --git a/relast2uml.base/src/main/jastadd/Analysis.jrag b/grammar2uml/src/main/jastadd/Analysis.jrag similarity index 100% rename from relast2uml.base/src/main/jastadd/Analysis.jrag rename to grammar2uml/src/main/jastadd/Analysis.jrag diff --git a/relast2uml.base/src/main/jastadd/Errors.jrag b/grammar2uml/src/main/jastadd/Errors.jrag similarity index 95% rename from relast2uml.base/src/main/jastadd/Errors.jrag rename to grammar2uml/src/main/jastadd/Errors.jrag index cf993e59b544cf90d2a861ad9394a94e3ac1d01f..6a67912cee04483dec1f7727b97f8bdc6b19a8c1 100644 --- a/relast2uml.base/src/main/jastadd/Errors.jrag +++ b/grammar2uml/src/main/jastadd/Errors.jrag @@ -3,9 +3,9 @@ import java.util.TreeSet; import java.util.LinkedList; aspect Errors { - coll Set<ErrorMessage> Relast2Uml.errors() + coll Set<ErrorMessage> Grammar2Uml.errors() [new TreeSet<ErrorMessage>()] - root Relast2Uml; + root Grammar2Uml; } aspect ErrorMessage { diff --git a/relast2uml.base/src/main/jastadd/Relast2Uml.relast b/grammar2uml/src/main/jastadd/Grammar2Uml.relast similarity index 61% rename from relast2uml.base/src/main/jastadd/Relast2Uml.relast rename to grammar2uml/src/main/jastadd/Grammar2Uml.relast index a8733a0cd0000d0f1b1af4f98365830d2e1c7aa0..9eab1230a1f5abd9fffbb7784043e1a457a14248 100644 --- a/relast2uml.base/src/main/jastadd/Relast2Uml.relast +++ b/grammar2uml/src/main/jastadd/Grammar2Uml.relast @@ -1,4 +1,4 @@ -Relast2Uml ::= Program <FileName> Folder* ; +Grammar2Uml ::= Program <FileName> Folder* ; Folder ::= <Name:String> ; rel Folder.Type* <-> TypeDecl.SourceFolder?; diff --git a/relast2uml.base/src/main/jastadd/MustacheNodes.relast b/grammar2uml/src/main/jastadd/MustacheNodes.relast similarity index 79% rename from relast2uml.base/src/main/jastadd/MustacheNodes.relast rename to grammar2uml/src/main/jastadd/MustacheNodes.relast index 93c7c7bea964246bc7cf052c2fe88f8480a0f4ab..d4b684c6a23d885c5aca80ebb54aef3f6d4aa402 100644 --- a/relast2uml.base/src/main/jastadd/MustacheNodes.relast +++ b/grammar2uml/src/main/jastadd/MustacheNodes.relast @@ -1,4 +1,4 @@ -MRelast2Uml ::= Folder:MFolder* OtherType:MTypeDecl* Containment:MContainment* Relation:MRelation* Inheritance:MInheritance* ; +MGrammar2Uml ::= Folder:MFolder* OtherType:MTypeDecl* Containment:MContainment* Relation:MRelation* Inheritance:MInheritance* ; MFolder ::= InnerTypeDecl:MTypeDecl*; MTypeDecl ::= InnerTokenComponent:MTokenComponent*; MTokenComponent; @@ -9,7 +9,7 @@ MListContainment : MContainment; MRelation ::= <Label> <LeftModifier> <RightModifier> <Bidirectional:boolean>; MInheritance ; -rel MRelast2Uml.Relast2Uml -> Relast2Uml; +rel MGrammar2Uml.Grammar2Uml -> Grammar2Uml; rel MFolder.Folder -> Folder; rel MTypeDecl.Type -> TypeDecl; rel MTokenComponent.Token -> TokenComponent; diff --git a/relast2uml.base/src/main/jastadd/NameResolution.jrag b/grammar2uml/src/main/jastadd/NameResolution.jrag similarity index 100% rename from relast2uml.base/src/main/jastadd/NameResolution.jrag rename to grammar2uml/src/main/jastadd/NameResolution.jrag diff --git a/grammar2uml/src/main/jastadd/Navigation.jrag b/grammar2uml/src/main/jastadd/Navigation.jrag new file mode 100644 index 0000000000000000000000000000000000000000..980904b34bb59d293da2512d5fea1d8375f457c0 --- /dev/null +++ b/grammar2uml/src/main/jastadd/Navigation.jrag @@ -0,0 +1,20 @@ +aspect Navigation { + + // --- program --- + eq Grammar2Uml.getChild().program() = getProgram(); + eq MGrammar2Uml.getChild().program() = getGrammar2Uml().program(); + + // --- grammar2uml --- + inh Grammar2Uml ASTNode.grammar2uml(); + eq Grammar2Uml.getChild().grammar2uml() = this; + eq MGrammar2Uml.getChild().grammar2uml() = getGrammar2Uml(); + + // --- containedFile --- + eq Grammar2Uml.getChild().containedFile() = null; + eq MGrammar2Uml.getChild().containedFile() = null; + + // --- containedFileName --- + eq Grammar2Uml.getChild().containedFileName() = getFileName(); + eq Program.getChild().containedFileName() = null; + eq MGrammar2Uml.getChild().containedFileName() = null; +} diff --git a/relast2uml.base/src/main/jastadd/backend/Configuration.jadd b/grammar2uml/src/main/jastadd/backend/Configuration.jadd similarity index 100% rename from relast2uml.base/src/main/jastadd/backend/Configuration.jadd rename to grammar2uml/src/main/jastadd/backend/Configuration.jadd diff --git a/relast2uml.base/src/main/jastadd/backend/Generation.jadd b/grammar2uml/src/main/jastadd/backend/Generation.jadd similarity index 94% rename from relast2uml.base/src/main/jastadd/backend/Generation.jadd rename to grammar2uml/src/main/jastadd/backend/Generation.jadd index b33d9a10405dcb2e164bfed651155a364d6056fa..7001c2f290bd9d8dd5a132f3c1d248c941055747 100644 --- a/relast2uml.base/src/main/jastadd/backend/Generation.jadd +++ b/grammar2uml/src/main/jastadd/backend/Generation.jadd @@ -86,9 +86,9 @@ aspect AttributesForMustache { } // --- toMustache --- - syn lazy MRelast2Uml Relast2Uml.toMustache() { - MRelast2Uml result = new MRelast2Uml(); - result.setRelast2Uml(this); + syn lazy MGrammar2Uml Grammar2Uml.toMustache() { + MGrammar2Uml result = new MGrammar2Uml(); + result.setGrammar2Uml(this); for (Folder folder : getFolderList()) { result.addFolder(folder.toMustache()); } @@ -164,9 +164,9 @@ aspect AttributesForMustache { } aspect AspectGeneration { - syn String Relast2Uml.generateAspect() = toMustache().generateAspect(); + syn String Grammar2Uml.generateAspect() = toMustache().generateAspect(); - syn String MRelast2Uml.generateAspect() { + syn String MGrammar2Uml.generateAspect() { StringBuilder sb = new StringBuilder(); com.github.mustachejava.reflect.ReflectionObjectHandler roh = new com.github.mustachejava.reflect.ReflectionObjectHandler() { @Override @@ -185,8 +185,8 @@ aspect AspectGeneration { }; com.github.mustachejava.DefaultMustacheFactory mf = new com.github.mustachejava.DefaultMustacheFactory(); // mf.setObjectHandler(roh); - com.github.mustachejava.Mustache m = mf.compile("relast2uml.mustache"); - m.execute(new java.io.PrintWriter(new org.jastadd.relast2uml.compiler.AppendableWriter(sb)), this); + com.github.mustachejava.Mustache m = mf.compile("grammar2uml.mustache"); + m.execute(new java.io.PrintWriter(new org.jastadd.grammar2uml.compiler.AppendableWriter(sb)), this); return sb.toString(); } } diff --git a/relast2uml.base/src/main/jastadd/parser/Relast2Uml.parser b/grammar2uml/src/main/jastadd/parser/Grammar2Uml.parser similarity index 78% rename from relast2uml.base/src/main/jastadd/parser/Relast2Uml.parser rename to grammar2uml/src/main/jastadd/parser/Grammar2Uml.parser index 6a2707b2f263b4174ccb4ca1537894e250a153ba..df2865f7f39906268d759884ec359a046d02f3ae 100644 --- a/relast2uml.base/src/main/jastadd/parser/Relast2Uml.parser +++ b/grammar2uml/src/main/jastadd/parser/Grammar2Uml.parser @@ -1,6 +1,6 @@ -Relast2Uml relast2uml - = folder.f relast2uml.r {: r.getFolderList().insertChild(f, 0); return r; :} - | {: return new Relast2Uml(); :} +Grammar2Uml grammar2uml + = folder.f grammar2uml.r {: r.getFolderList().insertChild(f, 0); return r; :} + | {: return new Grammar2Uml(); :} ; Folder folder diff --git a/grammar2uml/src/main/jastadd/parser/Preamble.parser b/grammar2uml/src/main/jastadd/parser/Preamble.parser new file mode 100644 index 0000000000000000000000000000000000000000..6d8af56847d11654ce2e75845dd5a27c317d273d --- /dev/null +++ b/grammar2uml/src/main/jastadd/parser/Preamble.parser @@ -0,0 +1,7 @@ +%header {: +package org.jastadd.grammar2uml.parser; +import org.jastadd.grammar2uml.ast.*; +:}; + +%goal goal; +%goal grammar2uml; diff --git a/grammar2uml/src/main/jastadd/scanner/Header.flex b/grammar2uml/src/main/jastadd/scanner/Header.flex new file mode 100644 index 0000000000000000000000000000000000000000..5050ac3e25313c07411bc53ed2b49a3c66bc3c86 --- /dev/null +++ b/grammar2uml/src/main/jastadd/scanner/Header.flex @@ -0,0 +1,20 @@ +package org.jastadd.grammar2uml.scanner; + +import org.jastadd.grammar2uml.parser.Grammar2UmlParser.Terminals; +%% + +%public +%final +%class Grammar2UmlScanner +%extends beaver.Scanner + +%type beaver.Symbol +%function nextToken +%yylexthrow beaver.Scanner.Exception +%scanerror Grammar2UmlScanner.ScannerError + +%x COMMENT +%s DECLARATION + +%line +%column diff --git a/relast2uml.base/src/main/jastadd/scanner/Keywords.flex b/grammar2uml/src/main/jastadd/scanner/Keywords.flex similarity index 100% rename from relast2uml.base/src/main/jastadd/scanner/Keywords.flex rename to grammar2uml/src/main/jastadd/scanner/Keywords.flex diff --git a/relast2uml.base/src/main/jastadd/scanner/Macros.flex b/grammar2uml/src/main/jastadd/scanner/Macros.flex similarity index 100% rename from relast2uml.base/src/main/jastadd/scanner/Macros.flex rename to grammar2uml/src/main/jastadd/scanner/Macros.flex diff --git a/relast2uml.base/src/main/jastadd/scanner/MappingContent.flex b/grammar2uml/src/main/jastadd/scanner/MappingContent.flex similarity index 100% rename from relast2uml.base/src/main/jastadd/scanner/MappingContent.flex rename to grammar2uml/src/main/jastadd/scanner/MappingContent.flex diff --git a/relast2uml.base/src/main/java/org/jastadd/relast2uml/compiler/AppendableWriter.java b/grammar2uml/src/main/java/org/jastadd/grammar2uml/compiler/AppendableWriter.java similarity index 93% rename from relast2uml.base/src/main/java/org/jastadd/relast2uml/compiler/AppendableWriter.java rename to grammar2uml/src/main/java/org/jastadd/grammar2uml/compiler/AppendableWriter.java index 70db05d0d7dd0eaefeac7d6d7cb5918392b64d6a..318f67fa93eccbdf25a30ced491e59115235f9da 100644 --- a/relast2uml.base/src/main/java/org/jastadd/relast2uml/compiler/AppendableWriter.java +++ b/grammar2uml/src/main/java/org/jastadd/grammar2uml/compiler/AppendableWriter.java @@ -1,4 +1,4 @@ -package org.jastadd.relast2uml.compiler; +package org.jastadd.grammar2uml.compiler; import java.io.IOException; import java.io.Writer; diff --git a/relast2uml.base/src/main/java/org/jastadd/relast2uml/compiler/Compiler.java b/grammar2uml/src/main/java/org/jastadd/grammar2uml/compiler/Compiler.java similarity index 72% rename from relast2uml.base/src/main/java/org/jastadd/relast2uml/compiler/Compiler.java rename to grammar2uml/src/main/java/org/jastadd/grammar2uml/compiler/Compiler.java index a90e48ff9f722303c95cbba82d6272f202794408..7b96d64fcd8c3504071992af6062ab24ef312fd5 100644 --- a/relast2uml.base/src/main/java/org/jastadd/relast2uml/compiler/Compiler.java +++ b/grammar2uml/src/main/java/org/jastadd/grammar2uml/compiler/Compiler.java @@ -1,16 +1,16 @@ -package org.jastadd.relast2uml.compiler; +package org.jastadd.grammar2uml.compiler; import beaver.Parser; import org.jastadd.option.BooleanOption; import org.jastadd.option.ValueOption; import org.jastadd.relast.compiler.AbstractCompiler; import org.jastadd.relast.compiler.CompilerException; -import org.jastadd.relast2uml.ast.ErrorMessage; -import org.jastadd.relast2uml.ast.GrammarFile; -import org.jastadd.relast2uml.ast.Program; -import org.jastadd.relast2uml.ast.Relast2Uml; -import org.jastadd.relast2uml.parser.Relast2UmlParser; -import org.jastadd.relast2uml.scanner.Relast2UmlScanner; +import org.jastadd.grammar2uml.ast.ErrorMessage; +import org.jastadd.grammar2uml.ast.GrammarFile; +import org.jastadd.grammar2uml.ast.Program; +import org.jastadd.grammar2uml.ast.Grammar2Uml; +import org.jastadd.grammar2uml.parser.Grammar2UmlParser; +import org.jastadd.grammar2uml.scanner.Grammar2UmlScanner; import java.io.BufferedReader; import java.io.IOException; @@ -24,14 +24,14 @@ import java.util.ResourceBundle; public class Compiler extends AbstractCompiler { private ValueOption optionOutputFile; - private ValueOption optionInputRelast2Uml; + private ValueOption optionInputGrammar2Uml; private BooleanOption optionDefaultFolders; private BooleanOption optionHelp; private BooleanOption optionVersion; private BooleanOption optionVerbose; public Compiler() { - super("relast2uml", false); + super("grammar2uml", false); } /** @@ -47,7 +47,7 @@ public class Compiler extends AbstractCompiler { */ private String readVersion() { try { - ResourceBundle resources = ResourceBundle.getBundle("relast2umlVersion"); + ResourceBundle resources = ResourceBundle.getBundle("grammar2umlVersion"); return resources.getString("version"); } catch (MissingResourceException e) { return "version ?"; @@ -85,8 +85,8 @@ public class Compiler extends AbstractCompiler { .defaultValue("uml.md") .acceptAnyValue() .needsValue(false)); - optionInputRelast2Uml = addOption( - new ValueOption("inputRelast2Uml", "relast2uml definition file.") + optionInputGrammar2Uml = addOption( + new ValueOption("inputGrammar2Uml", "grammar2uml definition file.") .needsValue(true)); optionDefaultFolders = addOption( new BooleanOption("defaultFolders", @@ -103,16 +103,16 @@ public class Compiler extends AbstractCompiler { .defaultValue(false)); } - private Relast2Uml parseProgram() throws CompilerException { + private Grammar2Uml parseProgram() throws CompilerException { Program program = new Program(); - Relast2Uml relast2Uml; + Grammar2Uml grammar2Uml; for (String inputGrammarFileName : getConfiguration().getFiles()) { printMessage("Parsing " + inputGrammarFileName); GrammarFile inputGrammar; try (BufferedReader reader = Files.newBufferedReader(Paths.get(inputGrammarFileName))) { - Relast2UmlScanner scanner = new Relast2UmlScanner(reader); - Relast2UmlParser parser = new Relast2UmlParser(); + Grammar2UmlScanner scanner = new Grammar2UmlScanner(reader); + Grammar2UmlParser parser = new Grammar2UmlParser(); inputGrammar = (GrammarFile) parser.parse(scanner); if (optionVerbose.value()) { inputGrammar.dumpTree(System.out); @@ -124,29 +124,29 @@ public class Compiler extends AbstractCompiler { } } - if (optionInputRelast2Uml.isMatched()) { - String inputRelast2UmlFileName = optionInputRelast2Uml.value(); - try (BufferedReader reader = Files.newBufferedReader(Paths.get(inputRelast2UmlFileName))) { - Relast2UmlScanner scanner = new Relast2UmlScanner(reader); - Relast2UmlParser parser = new Relast2UmlParser(); - relast2Uml = (Relast2Uml) parser.parse(scanner, Relast2UmlParser.AltGoals.relast2uml); - relast2Uml.setFileName(inputRelast2UmlFileName); + if (optionInputGrammar2Uml.isMatched()) { + String inputGrammar2UmlFileName = optionInputGrammar2Uml.value(); + try (BufferedReader reader = Files.newBufferedReader(Paths.get(inputGrammar2UmlFileName))) { + Grammar2UmlScanner scanner = new Grammar2UmlScanner(reader); + Grammar2UmlParser parser = new Grammar2UmlParser(); + grammar2Uml = (Grammar2Uml) parser.parse(scanner, Grammar2UmlParser.AltGoals.grammar2uml); + grammar2Uml.setFileName(inputGrammar2UmlFileName); } catch (IOException | Parser.Exception e) { - throw new CompilerException("Could not parse relast2uml file " + inputRelast2UmlFileName, e); + throw new CompilerException("Could not parse grammar2uml file " + inputGrammar2UmlFileName, e); } } else { // no special setting given - relast2Uml = new Relast2Uml(); - relast2Uml.setFileName("<none>"); + grammar2Uml = new Grammar2Uml(); + grammar2Uml.setFileName("<none>"); } - relast2Uml.setProgram(program); - relast2Uml.treeResolveAll(); + grammar2Uml.setProgram(program); + grammar2Uml.treeResolveAll(); if (optionDefaultFolders.value()) { for (GrammarFile grammarFile : program.getGrammarFileList()) { - relast2Uml.addFolder(grammarFile.defaultFolder()); + grammar2Uml.addFolder(grammarFile.defaultFolder()); } } - return relast2Uml; + return grammar2Uml; } @Override @@ -160,7 +160,7 @@ public class Compiler extends AbstractCompiler { return 0; } - printMessage("Running relast2uml " + readVersion()); + printMessage("Running grammar2uml " + readVersion()); String output; if (optionOutputFile.isMatched()) { @@ -180,18 +180,18 @@ public class Compiler extends AbstractCompiler { throw new CompilerException("No input grammars specified!"); } - Relast2Uml relast2uml = parseProgram(); + Grammar2Uml grammar2uml = parseProgram(); - if (!relast2uml.errors().isEmpty()) { + if (!grammar2uml.errors().isEmpty()) { System.err.println("Errors:"); - for (ErrorMessage e : relast2uml.errors()) { + for (ErrorMessage e : grammar2uml.errors()) { System.err.println(e); } System.exit(1); } printMessage("Writing output file " + output); - writeToFile(output, relast2uml.generateAspect()); + writeToFile(output, grammar2uml.generateAspect()); return 0; } } diff --git a/relast2uml.base/src/main/java/org/jastadd/relast2uml/compiler/SimpleMain.java b/grammar2uml/src/main/java/org/jastadd/grammar2uml/compiler/SimpleMain.java similarity index 78% rename from relast2uml.base/src/main/java/org/jastadd/relast2uml/compiler/SimpleMain.java rename to grammar2uml/src/main/java/org/jastadd/grammar2uml/compiler/SimpleMain.java index f2c36da68a2efe800c0d4e48dc56111dc8468517..ff422991c640c7308c89a990c9baa71e031cd9e6 100644 --- a/relast2uml.base/src/main/java/org/jastadd/relast2uml/compiler/SimpleMain.java +++ b/grammar2uml/src/main/java/org/jastadd/grammar2uml/compiler/SimpleMain.java @@ -1,9 +1,9 @@ -package org.jastadd.relast2uml.compiler; +package org.jastadd.grammar2uml.compiler; import beaver.Parser; -import org.jastadd.relast2uml.ast.*; -import org.jastadd.relast2uml.parser.Relast2UmlParser; -import org.jastadd.relast2uml.scanner.Relast2UmlScanner; +import org.jastadd.grammar2uml.ast.*; +import org.jastadd.grammar2uml.parser.Grammar2UmlParser; +import org.jastadd.grammar2uml.scanner.Grammar2UmlScanner; import java.io.BufferedReader; import java.io.IOException; @@ -15,7 +15,7 @@ import java.util.List; import java.util.stream.Collectors; /** - * Testing Relast2Uml without parser. + * Testing Grammar2Uml without parser. * * @author rschoene - Initial contribution */ @@ -29,8 +29,8 @@ public class SimpleMain { private static void createManualAST() { System.setProperty("java.util.logging.manager", "org.apache.logging.log4j.jul.LogManager"); System.setProperty("mustache.debug", "true"); - Relast2Uml model = new Relast2Uml(); - Path path = Paths.get("relast2uml.base", "src", "test", "resources", "Example.relast"); + Grammar2Uml model = new Grammar2Uml(); + Path path = Paths.get("grammar2uml.base", "src", "test", "resources", "Example.relast"); System.out.println("path.toFile().getAbsolutePath() = " + path.toFile().getAbsolutePath()); Program program = parseProgram(path); model.setProgram(program); @@ -57,8 +57,8 @@ public class SimpleMain { private static Program parseProgram(Path path) { try (BufferedReader reader = Files.newBufferedReader(path)) { - Relast2UmlScanner scanner = new Relast2UmlScanner(reader); - Relast2UmlParser parser = new Relast2UmlParser(); + Grammar2UmlScanner scanner = new Grammar2UmlScanner(reader); + Grammar2UmlParser parser = new Grammar2UmlParser(); GrammarFile grammarFile = (GrammarFile) parser.parse(scanner); Program program = new Program(); program.addGrammarFile(grammarFile); diff --git a/relast2uml.base/src/main/java/org/jastadd/relast2uml/compiler/Utils.java b/grammar2uml/src/main/java/org/jastadd/grammar2uml/compiler/Utils.java similarity index 90% rename from relast2uml.base/src/main/java/org/jastadd/relast2uml/compiler/Utils.java rename to grammar2uml/src/main/java/org/jastadd/grammar2uml/compiler/Utils.java index 1a7c04f2926fc0a23dc4f69810f0c2c1ba6ed49b..e10374b3155f7a394cf44a32a1dc06315d455382 100644 --- a/relast2uml.base/src/main/java/org/jastadd/relast2uml/compiler/Utils.java +++ b/grammar2uml/src/main/java/org/jastadd/grammar2uml/compiler/Utils.java @@ -1,4 +1,4 @@ -package org.jastadd.relast2uml.compiler; +package org.jastadd.grammar2uml.compiler; import java.util.*; import java.util.function.Predicate; diff --git a/relast2uml.base/src/main/resources/Containment.mustache b/grammar2uml/src/main/resources/Containment.mustache similarity index 100% rename from relast2uml.base/src/main/resources/Containment.mustache rename to grammar2uml/src/main/resources/Containment.mustache diff --git a/relast2uml.base/src/main/resources/Folder.mustache b/grammar2uml/src/main/resources/Folder.mustache similarity index 100% rename from relast2uml.base/src/main/resources/Folder.mustache rename to grammar2uml/src/main/resources/Folder.mustache diff --git a/relast2uml.base/src/main/resources/Inheritance.mustache b/grammar2uml/src/main/resources/Inheritance.mustache similarity index 100% rename from relast2uml.base/src/main/resources/Inheritance.mustache rename to grammar2uml/src/main/resources/Inheritance.mustache diff --git a/relast2uml.base/src/main/resources/Relation.mustache b/grammar2uml/src/main/resources/Relation.mustache similarity index 100% rename from relast2uml.base/src/main/resources/Relation.mustache rename to grammar2uml/src/main/resources/Relation.mustache diff --git a/relast2uml.base/src/main/resources/TypeDecl.mustache b/grammar2uml/src/main/resources/TypeDecl.mustache similarity index 100% rename from relast2uml.base/src/main/resources/TypeDecl.mustache rename to grammar2uml/src/main/resources/TypeDecl.mustache diff --git a/relast2uml.base/src/main/resources/relast2uml.mustache b/grammar2uml/src/main/resources/grammar2uml.mustache similarity index 100% rename from relast2uml.base/src/main/resources/relast2uml.mustache rename to grammar2uml/src/main/resources/grammar2uml.mustache diff --git a/relast2uml.base/src/main/resources/relast2umlVersion.properties b/grammar2uml/src/main/resources/grammar2umlVersion.properties similarity index 100% rename from relast2uml.base/src/main/resources/relast2umlVersion.properties rename to grammar2uml/src/main/resources/grammar2umlVersion.properties diff --git a/relast2uml.base/src/main/resources/log4j2.xml b/grammar2uml/src/main/resources/log4j2.xml similarity index 100% rename from relast2uml.base/src/main/resources/log4j2.xml rename to grammar2uml/src/main/resources/log4j2.xml diff --git a/relast2uml.base/src/test/java/org/jastadd/relast2uml/test/CompilerTest.java b/grammar2uml/src/test/java/org/jastadd/grammar2uml/test/CompilerTest.java similarity index 86% rename from relast2uml.base/src/test/java/org/jastadd/relast2uml/test/CompilerTest.java rename to grammar2uml/src/test/java/org/jastadd/grammar2uml/test/CompilerTest.java index 08174e4053964ff5154671bb8afe764d7f14c314..bf5af06acffe0e527a2f13e7890a6a8eee6bc683 100644 --- a/relast2uml.base/src/test/java/org/jastadd/relast2uml/test/CompilerTest.java +++ b/grammar2uml/src/test/java/org/jastadd/grammar2uml/test/CompilerTest.java @@ -1,7 +1,7 @@ -package org.jastadd.relast2uml.test; +package org.jastadd.grammar2uml.test; import org.jastadd.relast.compiler.CompilerException; -import org.jastadd.relast2uml.compiler.Compiler; +import org.jastadd.grammar2uml.compiler.Compiler; import org.junit.jupiter.api.Test; import java.io.File; @@ -22,9 +22,9 @@ public class CompilerTest { System.out.println("Running test in directory '" + Paths.get(".").toAbsolutePath() + "'."); assertTrue(Paths.get(inputGrammar).toFile().exists(), "input grammar does not exist"); - assertTrue(Paths.get(inputRelast2Uml).toFile().exists(), "input relast2uml does not exist"); + assertTrue(Paths.get(inputRelast2Uml).toFile().exists(), "input grammar2uml does not exist"); assertFalse(Paths.get(inputGrammar).toFile().isDirectory(), "input grammar is a directory"); - assertFalse(Paths.get(inputRelast2Uml).toFile().isDirectory(), "input relast2uml is a directory"); + assertFalse(Paths.get(inputRelast2Uml).toFile().isDirectory(), "input grammar2uml is a directory"); File outputFile = Paths.get(output).toFile(); File outputDirFile = outputFile.getParentFile(); @@ -44,6 +44,6 @@ public class CompilerTest { @Test void transformMinimalExample() throws CompilerException { - transform("src/test/resources/Example.relast", "src/test/resources/Example.relast2uml", "src/test/resources/uml.md"); + transform("src/test/resources/Example.relast", "src/test/resources/Example.grammar2uml", "src/test/resources/uml.md"); } } diff --git a/relast2uml.base/src/test/resources/.gitignore b/grammar2uml/src/test/resources/.gitignore similarity index 100% rename from relast2uml.base/src/test/resources/.gitignore rename to grammar2uml/src/test/resources/.gitignore diff --git a/relast2uml.base/src/test/resources/Example.relast2uml b/grammar2uml/src/test/resources/Example.grammar2uml similarity index 100% rename from relast2uml.base/src/test/resources/Example.relast2uml rename to grammar2uml/src/test/resources/Example.grammar2uml diff --git a/relast2uml.base/src/test/resources/Example.relast b/grammar2uml/src/test/resources/Example.relast similarity index 100% rename from relast2uml.base/src/test/resources/Example.relast rename to grammar2uml/src/test/resources/Example.relast diff --git a/relast2uml.base/src/test/resources/log4j2.xml b/grammar2uml/src/test/resources/log4j2.xml similarity index 100% rename from relast2uml.base/src/test/resources/log4j2.xml rename to grammar2uml/src/test/resources/log4j2.xml diff --git a/relast2uml.base/src/main/jastadd/Navigation.jrag b/relast2uml.base/src/main/jastadd/Navigation.jrag deleted file mode 100644 index 052410f4447c25aca0770fe97c1ba4d7cc1e9efa..0000000000000000000000000000000000000000 --- a/relast2uml.base/src/main/jastadd/Navigation.jrag +++ /dev/null @@ -1,19 +0,0 @@ -aspect Navigation { - - // --- program --- - eq Relast2Uml.getChild().program() = getProgram(); - eq MRelast2Uml.getChild().program() = getRelast2Uml().program(); - - // --- relast2uml --- - inh Relast2Uml ASTNode.relast2uml(); - eq Relast2Uml.getChild().relast2uml() = this; - eq MRelast2Uml.getChild().relast2uml() = getRelast2Uml(); - - // --- containedFile --- - eq Relast2Uml.getChild().containedFile() = null; - - // --- containedFileName --- - eq Relast2Uml.getChild().containedFileName() = getFileName(); - eq Program.getChild().containedFileName() = null; - eq MRelast2Uml.getChild().containedFileName() = null; -} diff --git a/relast2uml.base/src/main/jastadd/parser/Preamble.parser b/relast2uml.base/src/main/jastadd/parser/Preamble.parser deleted file mode 100644 index 77d6d2b5d96a4e66781b93ff2e299de21cc4b199..0000000000000000000000000000000000000000 --- a/relast2uml.base/src/main/jastadd/parser/Preamble.parser +++ /dev/null @@ -1,7 +0,0 @@ -%header {: -package org.jastadd.relast2uml.parser; -import org.jastadd.relast2uml.ast.*; -:}; - -%goal goal; -%goal relast2uml; diff --git a/relast2uml.base/src/main/jastadd/scanner/Header.flex b/relast2uml.base/src/main/jastadd/scanner/Header.flex deleted file mode 100644 index 7c076bf3f48634ab54a550423951225d0b940638..0000000000000000000000000000000000000000 --- a/relast2uml.base/src/main/jastadd/scanner/Header.flex +++ /dev/null @@ -1,20 +0,0 @@ -package org.jastadd.relast2uml.scanner; - -import org.jastadd.relast2uml.parser.Relast2UmlParser.Terminals; -%% - -%public -%final -%class Relast2UmlScanner -%extends beaver.Scanner - -%type beaver.Symbol -%function nextToken -%yylexthrow beaver.Scanner.Exception -%scanerror Relast2UmlScanner.ScannerError - -%x COMMENT -%s DECLARATION - -%line -%column diff --git a/settings.gradle b/settings.gradle index 4737356612d25382408eb63d8dc372361edb6eb5..eb0d566fd20cf8b162d936b2b7ec901310be1418 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,4 +1,4 @@ rootProject.name = 'relast2uml' include 'relast.preprocessor' -include 'relast2uml.base' +include 'grammar2uml'