From 39f9acc81d8c4c99900e2206ef2d83bea465bcd6 Mon Sep 17 00:00:00 2001 From: rschoene <rene.schoene@tu-dresden.de> Date: Wed, 8 Apr 2020 12:17:08 +0200 Subject: [PATCH] Split project into base and example. --- .gitignore | 5 - build.gradle | 135 ++++------------ gradle.properties | 2 + ros2rag.base/.gitignore | 5 + ros2rag.base/build.gradle | 111 ++++++++++++++ .../src}/main/jastadd/Analysis.jrag | 0 .../src}/main/jastadd/DumpTree.jrag | 0 .../src}/main/jastadd/Errors.jrag | 0 .../src}/main/jastadd/Preamble.parser | 0 .../src}/main/jastadd/RelAst.ast | 0 .../src}/main/jastadd/RelAst.flex | 0 .../src}/main/jastadd/RelAst.parser | 0 .../src}/main/jastadd/Ros2Rag.ast | 0 .../main/jastadd/backend/AbstractGrammar.jadd | 0 .../src}/main/jastadd/backend/Aspect.jadd | 3 +- .../jastadd/ros2rag/compiler/Compiler.java | 0 .../jastadd/ros2rag/compiler/SimpleMain.java | 0 .../org/jastadd/ros2rag/compiler/Utils.java | 0 .../ros2rag/compiler/options/CommandLine.java | 0 .../ros2rag/compiler/options/EnumOption.java | 0 .../ros2rag/compiler/options/FlagOption.java | 0 .../ros2rag/compiler/options/Option.java | 0 .../compiler/options/StringOption.java | 0 .../src}/main/resources/log4j2.xml | 0 .../jastadd/ros2rag/tests/RosToRagTest.java | 0 .../src}/test/resources/MinimalExample.relast | 0 ros2rag.example/.gitignore | 5 + ros2rag.example/build.gradle | 121 +++++++++++++++ ros2rag.example/hpps.build.gradle | 145 ++++++++++++++++++ .../src/main/jastadd/Example.relast | 15 ++ .../inf/st/ros2rag/example/Main.java | 12 ++ settings.gradle | 4 + 32 files changed, 455 insertions(+), 108 deletions(-) create mode 100644 gradle.properties create mode 100644 ros2rag.base/.gitignore create mode 100644 ros2rag.base/build.gradle rename {src => ros2rag.base/src}/main/jastadd/Analysis.jrag (100%) rename {src => ros2rag.base/src}/main/jastadd/DumpTree.jrag (100%) rename {src => ros2rag.base/src}/main/jastadd/Errors.jrag (100%) rename {src => ros2rag.base/src}/main/jastadd/Preamble.parser (100%) rename {src => ros2rag.base/src}/main/jastadd/RelAst.ast (100%) rename {src => ros2rag.base/src}/main/jastadd/RelAst.flex (100%) rename {src => ros2rag.base/src}/main/jastadd/RelAst.parser (100%) rename {src => ros2rag.base/src}/main/jastadd/Ros2Rag.ast (100%) rename {src => ros2rag.base/src}/main/jastadd/backend/AbstractGrammar.jadd (100%) rename {src => ros2rag.base/src}/main/jastadd/backend/Aspect.jadd (95%) rename {src => ros2rag.base/src}/main/java/org/jastadd/ros2rag/compiler/Compiler.java (100%) rename {src => ros2rag.base/src}/main/java/org/jastadd/ros2rag/compiler/SimpleMain.java (100%) rename {src => ros2rag.base/src}/main/java/org/jastadd/ros2rag/compiler/Utils.java (100%) rename {src => ros2rag.base/src}/main/java/org/jastadd/ros2rag/compiler/options/CommandLine.java (100%) rename {src => ros2rag.base/src}/main/java/org/jastadd/ros2rag/compiler/options/EnumOption.java (100%) rename {src => ros2rag.base/src}/main/java/org/jastadd/ros2rag/compiler/options/FlagOption.java (100%) rename {src => ros2rag.base/src}/main/java/org/jastadd/ros2rag/compiler/options/Option.java (100%) rename {src => ros2rag.base/src}/main/java/org/jastadd/ros2rag/compiler/options/StringOption.java (100%) rename {src => ros2rag.base/src}/main/resources/log4j2.xml (100%) rename {src => ros2rag.base/src}/test/java/org/jastadd/ros2rag/tests/RosToRagTest.java (100%) rename {src => ros2rag.base/src}/test/resources/MinimalExample.relast (100%) create mode 100644 ros2rag.example/.gitignore create mode 100644 ros2rag.example/build.gradle create mode 100644 ros2rag.example/hpps.build.gradle create mode 100644 ros2rag.example/src/main/jastadd/Example.relast create mode 100644 ros2rag.example/src/main/java/de/tudresden/inf/st/ros2rag/example/Main.java create mode 100644 settings.gradle diff --git a/.gitignore b/.gitignore index 63f236c..b43a58b 100644 --- a/.gitignore +++ b/.gitignore @@ -4,8 +4,3 @@ .classpath .idea/ .gradle/ -build -src/gen-res/ -src/gen/ -out/ -*.class diff --git a/build.gradle b/build.gradle index ecfc52f..7e1c7b5 100644 --- a/build.gradle +++ b/build.gradle @@ -1,114 +1,47 @@ - -apply plugin: 'java' -apply plugin: 'jastadd' -apply plugin: 'application' -apply plugin: "idea" - -sourceCompatibility = 1.8 - -mainClassName = 'org.jastadd.ros2rag.compiler.Compiler' - -repositories { - jcenter() -} - -buildscript { - repositories.jcenter() - dependencies { - classpath 'org.jastadd:jastaddgradle:1.13.3' - } -} - -dependencies { - testImplementation 'org.junit.jupiter:junit-jupiter-api:5.4.0' - testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.4.0' - testCompile 'org.assertj:assertj-core:3.12.1' - compile 'com.fasterxml.jackson.core:jackson-core:2.9.8' - compile 'com.fasterxml.jackson.core:jackson-databind:2.9.8' - compile 'org.jastadd:jastadd:2.3.4' - runtime 'org.jastadd:jastadd:2.3.4' - compile group: 'net.sf.beaver', name: 'beaver-rt', version: '0.9.11' - compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.10.0' - compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.10.0' -} - -sourceSets { - main { - java.srcDir "src/gen/java" - java.srcDir "buildSrc/gen/java" - } -} - -test { - useJUnitPlatform() - - maxHeapSize = '1G' +plugins { + id "com.github.ben-manes.versions" version "0.20.0" } -jar { - manifest { - attributes "Main-Class": 'org.jastadd.ros2rag.compiler.Compiler' - } - - from { - configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } - } +allprojects { + group = 'de.tudresden.inf.st' + version = '0.1' } -jastadd { - configureModuleBuild() - modules { - //noinspection GroovyAssignabilityCheck - module("RelAst") { - - java { - basedir "." - include "src/main/**/*.java" - include "src/gen/**/*.java" - } - - jastadd { - basedir "src/main/jastadd/" - include "**/*.ast" - include "**/*.jadd" - include "**/*.jrag" - } - - scanner { - include "src/main/jastadd/RelAst.flex" - } +subprojects { + apply plugin: 'java' + apply plugin: 'idea' - parser { - include "src/main/jastadd/Preamble.parser" - include "src/main/jastadd/RelAst.parser" - } - } - } + sourceCompatibility = 1.8 + targetCompatibility = 1.8 - cleanGen.doFirst { - delete "src/gen/java/org" - delete "src/gen-res/BuildInfo.properties" - } + task packageSources(type: Jar) { + classifier = 'sources' + from sourceSets.main.allSource + } - preprocessParser.doFirst { + artifacts.archives packageSources + configurations { + testArtifacts.extendsFrom testRuntime + } - args += ["--no-beaver-symbol"] + task testJar(type: Jar) { + classifier "test" + from sourceSets.test.output + } - } + artifacts { + testArtifacts testJar + } - module = "RelAst" + repositories { + mavenCentral() + } - astPackage = 'org.jastadd.ros2rag.ast' + dependencies { + implementation group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.11.2' + implementation group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.11.2' + testImplementation group: 'junit', name: 'junit', version: '4.12' + testImplementation group: 'org.hamcrest', name: 'hamcrest-junit', version: '2.0.0.0' + } - parser.name = 'RelAstParser' - - genDir = 'src/gen/java' - - buildInfoDir = 'src/gen-res' - - scanner.genDir = "src/gen/java/org/jastadd/ros2rag/scanner" - parser.genDir = "src/gen/java/org/jastadd/ros2rag/parser" - - jastaddOptions = ["--lineColumnNumbers", "--safeLazy", "--visitCheck=true", "--rewrite=cnta", "--cache=all"] } - diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..8dfaf2b --- /dev/null +++ b/gradle.properties @@ -0,0 +1,2 @@ +jackson_version = 2.9.8 +apache_httpcomponents_version = 4.5.8 diff --git a/ros2rag.base/.gitignore b/ros2rag.base/.gitignore new file mode 100644 index 0000000..87b4cdd --- /dev/null +++ b/ros2rag.base/.gitignore @@ -0,0 +1,5 @@ +build +src/gen-res/ +src/gen/ +out/ +*.class diff --git a/ros2rag.base/build.gradle b/ros2rag.base/build.gradle new file mode 100644 index 0000000..f9795a4 --- /dev/null +++ b/ros2rag.base/build.gradle @@ -0,0 +1,111 @@ +apply plugin: 'jastadd' +apply plugin: 'application' + +sourceCompatibility = 1.8 + +mainClassName = 'org.jastadd.ros2rag.compiler.Compiler' + +repositories { + jcenter() +} + +buildscript { + repositories.jcenter() + dependencies { + classpath 'org.jastadd:jastaddgradle:1.13.3' + } +} + +dependencies { + testImplementation 'org.junit.jupiter:junit-jupiter-api:5.4.0' + testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.4.0' + testCompile 'org.assertj:assertj-core:3.12.1' + compile "com.fasterxml.jackson.core:jackson-core:${jackson_version}" + compile "com.fasterxml.jackson.core:jackson-databind:${jackson_version}" + compile 'org.jastadd:jastadd:2.3.4' + runtime 'org.jastadd:jastadd:2.3.4' + compile group: 'net.sf.beaver', name: 'beaver-rt', version: '0.9.11' + compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.10.0' + compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.10.0' +} + +sourceSets { + main { + java.srcDir "src/gen/java" + java.srcDir "buildSrc/gen/java" + } +} + +test { + useJUnitPlatform() + + maxHeapSize = '1G' +} + +jar { + manifest { + attributes "Main-Class": 'org.jastadd.ros2rag.compiler.Compiler' + } + + from { + configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } + } +} + +jastadd { + configureModuleBuild() + modules { + //noinspection GroovyAssignabilityCheck + module("RelAst") { + + java { + basedir "." + include "src/main/**/*.java" + include "src/gen/**/*.java" + } + + jastadd { + basedir "src/main/jastadd/" + include "**/*.ast" + include "**/*.jadd" + include "**/*.jrag" + } + + scanner { + include "src/main/jastadd/RelAst.flex" + } + + parser { + include "src/main/jastadd/Preamble.parser" + include "src/main/jastadd/RelAst.parser" + } + } + } + + cleanGen.doFirst { + delete "src/gen/java/org" + delete "src/gen-res/BuildInfo.properties" + } + + preprocessParser.doFirst { + + args += ["--no-beaver-symbol"] + + } + + module = "RelAst" + + astPackage = 'org.jastadd.ros2rag.ast' + + parser.name = 'RelAstParser' + + genDir = 'src/gen/java' + + buildInfoDir = 'src/gen-res' + + scanner.genDir = "src/gen/java/org/jastadd/ros2rag/scanner" + parser.genDir = "src/gen/java/org/jastadd/ros2rag/parser" + + jastaddOptions = ["--lineColumnNumbers", "--safeLazy", "--visitCheck=true", "--rewrite=cnta", "--cache=all"] +} + diff --git a/src/main/jastadd/Analysis.jrag b/ros2rag.base/src/main/jastadd/Analysis.jrag similarity index 100% rename from src/main/jastadd/Analysis.jrag rename to ros2rag.base/src/main/jastadd/Analysis.jrag diff --git a/src/main/jastadd/DumpTree.jrag b/ros2rag.base/src/main/jastadd/DumpTree.jrag similarity index 100% rename from src/main/jastadd/DumpTree.jrag rename to ros2rag.base/src/main/jastadd/DumpTree.jrag diff --git a/src/main/jastadd/Errors.jrag b/ros2rag.base/src/main/jastadd/Errors.jrag similarity index 100% rename from src/main/jastadd/Errors.jrag rename to ros2rag.base/src/main/jastadd/Errors.jrag diff --git a/src/main/jastadd/Preamble.parser b/ros2rag.base/src/main/jastadd/Preamble.parser similarity index 100% rename from src/main/jastadd/Preamble.parser rename to ros2rag.base/src/main/jastadd/Preamble.parser diff --git a/src/main/jastadd/RelAst.ast b/ros2rag.base/src/main/jastadd/RelAst.ast similarity index 100% rename from src/main/jastadd/RelAst.ast rename to ros2rag.base/src/main/jastadd/RelAst.ast diff --git a/src/main/jastadd/RelAst.flex b/ros2rag.base/src/main/jastadd/RelAst.flex similarity index 100% rename from src/main/jastadd/RelAst.flex rename to ros2rag.base/src/main/jastadd/RelAst.flex diff --git a/src/main/jastadd/RelAst.parser b/ros2rag.base/src/main/jastadd/RelAst.parser similarity index 100% rename from src/main/jastadd/RelAst.parser rename to ros2rag.base/src/main/jastadd/RelAst.parser diff --git a/src/main/jastadd/Ros2Rag.ast b/ros2rag.base/src/main/jastadd/Ros2Rag.ast similarity index 100% rename from src/main/jastadd/Ros2Rag.ast rename to ros2rag.base/src/main/jastadd/Ros2Rag.ast diff --git a/src/main/jastadd/backend/AbstractGrammar.jadd b/ros2rag.base/src/main/jastadd/backend/AbstractGrammar.jadd similarity index 100% rename from src/main/jastadd/backend/AbstractGrammar.jadd rename to ros2rag.base/src/main/jastadd/backend/AbstractGrammar.jadd diff --git a/src/main/jastadd/backend/Aspect.jadd b/ros2rag.base/src/main/jastadd/backend/Aspect.jadd similarity index 95% rename from src/main/jastadd/backend/Aspect.jadd rename to ros2rag.base/src/main/jastadd/backend/Aspect.jadd index 61247c8..71491c9 100644 --- a/src/main/jastadd/backend/Aspect.jadd +++ b/ros2rag.base/src/main/jastadd/backend/Aspect.jadd @@ -55,11 +55,10 @@ aspect Aspect { // or topicForJoint_CurrentPosition.put(topic, target); } - */ */ @Override void ReadFromMqttDefinition.generateAspect(StringBuilder sb) { - sb.append("public void ").append(type).append(".connectTo(String topic) {\n") + sb.append("public void ").append("type").append(".connectTo(String topic) {\n") .append(aspectIndent).append("mqttUpdater().addConnection") .append(getTargetType().getID()).append("_") .append(getTargetChild()) diff --git a/src/main/java/org/jastadd/ros2rag/compiler/Compiler.java b/ros2rag.base/src/main/java/org/jastadd/ros2rag/compiler/Compiler.java similarity index 100% rename from src/main/java/org/jastadd/ros2rag/compiler/Compiler.java rename to ros2rag.base/src/main/java/org/jastadd/ros2rag/compiler/Compiler.java diff --git a/src/main/java/org/jastadd/ros2rag/compiler/SimpleMain.java b/ros2rag.base/src/main/java/org/jastadd/ros2rag/compiler/SimpleMain.java similarity index 100% rename from src/main/java/org/jastadd/ros2rag/compiler/SimpleMain.java rename to ros2rag.base/src/main/java/org/jastadd/ros2rag/compiler/SimpleMain.java diff --git a/src/main/java/org/jastadd/ros2rag/compiler/Utils.java b/ros2rag.base/src/main/java/org/jastadd/ros2rag/compiler/Utils.java similarity index 100% rename from src/main/java/org/jastadd/ros2rag/compiler/Utils.java rename to ros2rag.base/src/main/java/org/jastadd/ros2rag/compiler/Utils.java diff --git a/src/main/java/org/jastadd/ros2rag/compiler/options/CommandLine.java b/ros2rag.base/src/main/java/org/jastadd/ros2rag/compiler/options/CommandLine.java similarity index 100% rename from src/main/java/org/jastadd/ros2rag/compiler/options/CommandLine.java rename to ros2rag.base/src/main/java/org/jastadd/ros2rag/compiler/options/CommandLine.java diff --git a/src/main/java/org/jastadd/ros2rag/compiler/options/EnumOption.java b/ros2rag.base/src/main/java/org/jastadd/ros2rag/compiler/options/EnumOption.java similarity index 100% rename from src/main/java/org/jastadd/ros2rag/compiler/options/EnumOption.java rename to ros2rag.base/src/main/java/org/jastadd/ros2rag/compiler/options/EnumOption.java diff --git a/src/main/java/org/jastadd/ros2rag/compiler/options/FlagOption.java b/ros2rag.base/src/main/java/org/jastadd/ros2rag/compiler/options/FlagOption.java similarity index 100% rename from src/main/java/org/jastadd/ros2rag/compiler/options/FlagOption.java rename to ros2rag.base/src/main/java/org/jastadd/ros2rag/compiler/options/FlagOption.java diff --git a/src/main/java/org/jastadd/ros2rag/compiler/options/Option.java b/ros2rag.base/src/main/java/org/jastadd/ros2rag/compiler/options/Option.java similarity index 100% rename from src/main/java/org/jastadd/ros2rag/compiler/options/Option.java rename to ros2rag.base/src/main/java/org/jastadd/ros2rag/compiler/options/Option.java diff --git a/src/main/java/org/jastadd/ros2rag/compiler/options/StringOption.java b/ros2rag.base/src/main/java/org/jastadd/ros2rag/compiler/options/StringOption.java similarity index 100% rename from src/main/java/org/jastadd/ros2rag/compiler/options/StringOption.java rename to ros2rag.base/src/main/java/org/jastadd/ros2rag/compiler/options/StringOption.java diff --git a/src/main/resources/log4j2.xml b/ros2rag.base/src/main/resources/log4j2.xml similarity index 100% rename from src/main/resources/log4j2.xml rename to ros2rag.base/src/main/resources/log4j2.xml diff --git a/src/test/java/org/jastadd/ros2rag/tests/RosToRagTest.java b/ros2rag.base/src/test/java/org/jastadd/ros2rag/tests/RosToRagTest.java similarity index 100% rename from src/test/java/org/jastadd/ros2rag/tests/RosToRagTest.java rename to ros2rag.base/src/test/java/org/jastadd/ros2rag/tests/RosToRagTest.java diff --git a/src/test/resources/MinimalExample.relast b/ros2rag.base/src/test/resources/MinimalExample.relast similarity index 100% rename from src/test/resources/MinimalExample.relast rename to ros2rag.base/src/test/resources/MinimalExample.relast diff --git a/ros2rag.example/.gitignore b/ros2rag.example/.gitignore new file mode 100644 index 0000000..87b4cdd --- /dev/null +++ b/ros2rag.example/.gitignore @@ -0,0 +1,5 @@ +build +src/gen-res/ +src/gen/ +out/ +*.class diff --git a/ros2rag.example/build.gradle b/ros2rag.example/build.gradle new file mode 100644 index 0000000..77f4b46 --- /dev/null +++ b/ros2rag.example/build.gradle @@ -0,0 +1,121 @@ +apply plugin: 'jastadd' +apply plugin: 'application' + +sourceCompatibility = 1.8 + +mainClassName = 'de.tudresden.inf.st.ros2rag.example.Main' + +repositories { + jcenter() +} + +buildscript { + repositories.jcenter() + dependencies { + classpath 'org.jastadd:jastaddgradle:1.13.3' + } +} + +sourceSets.main.java.srcDir "src/gen/java" +jar.manifest.attributes('Main-Class': 'de.tudresden.inf.st.ros2rag.Main') + +dependencies { + implementation group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-xml', version: "${jackson_version}" + implementation group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: "${jackson_version}" + implementation group: 'net.sf.beaver', name: 'beaver-rt', version: '0.9.11' + + jastadd2 "org.jastadd:jastadd:2.3.4" +} + +test { + useJUnitPlatform() + + maxHeapSize = '1G' +} + +jastadd { + configureModuleBuild() + modules { + //noinspection GroovyAssignabilityCheck + module("ros2rag example") { + + java { + basedir "src/" + include "main/**/*.java" + include "gen/**/*.java" + } + + jastadd { + basedir "src/" + include "main/jastadd/**/*.ast" + include "main/jastadd/**/*.jadd" + include "main/jastadd/**/*.jrag" + include "gen/jastadd/**/*.ast" + include "gen/jastadd/**/*.jadd" + include "gen/jastadd/**/*.jrag" + } + + // scanner { + // include "src/main/jastadd/RelAst.flex" + // } + + // parser { + // include "src/main/jastadd/Preamble.parser" + // include "src/main/jastadd/RelAst.parser" + // } + } + } + + cleanGen.doFirst { + delete "src/gen/java/org" + delete "src/gen-res/BuildInfo.properties" + } + + preprocessParser.doFirst { + + args += ["--no-beaver-symbol"] + + } + + module = "ros2rag example" + + astPackage = 'de.tudresden.inf.st.ros2rag.ast' + + // parser.name = 'RelAstParser' + + genDir = 'src/gen/java' + + buildInfoDir = 'src/gen-res' + + // scanner.genDir = "src/gen/java/org/jastadd/ros2rag/scanner" + // parser.genDir = "src/gen/java/org/jastadd/ros2rag/parser" + + // jastaddOptions = ["--lineColumnNumbers", "--visitCheck=true", "--rewrite=cnta", "--cache=all"] + // default options are: '--rewrite=cnta', '--safeLazy', '--visitCheck=false', '--cacheCycle=false' + extraJastAddOptions = ["--lineColumnNumbers", '--List=JastAddList'] +} + +// Input files +def relastFiles = ["./src/main/jastadd/Example.relast"] + +// phase: RelAst -> JastAdd +task relastToJastAdd(type: JavaExec) { + group = 'Build' + main = "-jar" + + args(["../libs/relast.jar", + "--grammarName=./src/gen/jastadd/model", + "--useJastAddNames", + "--listClass=ArrayList", + "--jastAddList=JastAddList", + "--resolverHelper", + "--file"] + + + relastFiles) + + inputs.files relastFiles + outputs.files file("./src/gen/jastadd/model.ast"), file("./src/gen/jastadd/model.jadd") +} + +// Workflow configuration for phases +generateAst.dependsOn relastToJastAdd diff --git a/ros2rag.example/hpps.build.gradle b/ros2rag.example/hpps.build.gradle new file mode 100644 index 0000000..80a1c4a --- /dev/null +++ b/ros2rag.example/hpps.build.gradle @@ -0,0 +1,145 @@ +// General configuration (plugins, settings, dependencies) + +buildscript { + repositories.mavenLocal() + repositories.mavenCentral() + dependencies { + classpath group: 'org.jastadd', name: 'jastaddgradle', version: '1.13.3' + } +} + +plugins { + id 'java' + id 'application' + id 'idea' + id 'jacoco' +} + +apply plugin: 'jastadd' + +group 'de.tudresden.inf.st' +version '0.1' + +sourceCompatibility = 1.8 + +repositories.mavenCentral() + +idea.module.generatedSourceDirs += file('src/gen/java') + +configurations { + ragdoc +} + +sourceSets.main.java.srcDir "src/gen/java" +jar.manifest.attributes('Main-Class': 'de.tudresden.inf.st.hybridpps.Main') + +dependencies { + implementation group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-xml', version: "${jackson_version}" + implementation group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: "${jackson_version}" + implementation group: 'net.sf.beaver', name: 'beaver-rt', version: '0.9.11' + + jastadd2 "org.jastadd:jastadd:2.3.4" + ragdoc files('../libs/rd-builder.jar') +} + +test { + testLogging { + events "passed", "skipped", "failed" + exceptionFormat "full" + } +} + +jacocoTestReport { + reports { + xml.enabled true + html.enabled false + } +} + +run { + mainClassName = 'de.tudresden.inf.st.hybridpps.Main' +// standardInput = System.in +} +run.enabled = false + +// Input files +def relastFiles = ["./src/main/jastadd/problem.relast", "./src/main/jastadd/solution.relast"] + +// phase: RelAst -> JastAdd +task relastToJastAdd(type: JavaExec) { + group = 'Build' + main = "-jar" + + args(["../libs/relast.jar", + "--grammarName=./src/gen/jastadd/model", + "--useJastAddNames", + "--listClass=ArrayList", + "--jastAddList=JastAddList", + "--resolverHelper", + "--file"] + + + relastFiles) + + inputs.files relastFiles + outputs.files file("./src/gen/jastadd/model.ast"), file("./src/gen/jastadd/model.jadd") +} + +// phase: JastAdd -> Java (using JastAdd Gradle plugin) +jastadd { + configureModuleBuild() + modules { + module("hybridpps") { + + java { + basedir "src/" + include "main/**/*.java" + include "gen/**/*.java" + } + + jastadd { + basedir "src/" + include "main/jastadd/**/*.ast" + include "main/jastadd/**/*.jadd" + include "main/jastadd/**/*.jrag" + include "gen/jastadd/**/*.ast" + include "gen/jastadd/**/*.jadd" + include "gen/jastadd/**/*.jrag" + } + + scanner { + include "src/main/jastadd/HybridPPSModelScanner.flex" + } + + parser { + include "src/main/jastadd/HybridPPSModelParser.parser" + } + } + } + + cleanGen.doFirst { + delete "src/gen/java/de" + delete "src/gen-res/BuildInfo.properties" + } + + module = "hybridpps" + + astPackage = 'de.tudresden.inf.st.hybridpps.jastadd.model' + + parser.name = 'HybridPPSModelParser' + + genDir = 'src/gen/java' + + buildInfoDir = 'src/gen-res' + + scanner.genDir = "src/gen/java/de/tudresden/inf/st/hybridpps/jastadd/scanner" + parser.genDir = "src/gen/java/de/tudresden/inf/st/hybridpps/jastadd/parser" + +// default options are: '--rewrite=cnta', '--safeLazy', '--visitCheck=false', '--cacheCycle=false' + extraJastAddOptions = ['--List=JastAddList'] +} + +// Workflow configuration for phases +generateAst.dependsOn relastToJastAdd + +//// always run jastadd +//jastadd.outputs.upToDateWhen {false} diff --git a/ros2rag.example/src/main/jastadd/Example.relast b/ros2rag.example/src/main/jastadd/Example.relast new file mode 100644 index 0000000..7b83143 --- /dev/null +++ b/ros2rag.example/src/main/jastadd/Example.relast @@ -0,0 +1,15 @@ +Model ::= RobotArm ZoneModel ; + +ZoneModel ::= Size:Position SafetyZone:Zone*; + +Zone ::= Position*; + +// Do not use terminal-NTA's for now, as relast has problems with it "/<ShouldUseLowSpeed:Boolean>/" ; +RobotArm ::= Joint* EndEffector ; + +Joint ::= <Name> ; +rel Joint.CurrentPosition -> Position ; + +EndEffector : Joint; + +Position ::= <x:int> <y:int> <z:int> ; diff --git a/ros2rag.example/src/main/java/de/tudresden/inf/st/ros2rag/example/Main.java b/ros2rag.example/src/main/java/de/tudresden/inf/st/ros2rag/example/Main.java new file mode 100644 index 0000000..c5b575d --- /dev/null +++ b/ros2rag.example/src/main/java/de/tudresden/inf/st/ros2rag/example/Main.java @@ -0,0 +1,12 @@ +package de.tudresden.inf.st.ros2rag.example; + +/** + * Testing Ros2Rag without generating something. + * + * @author rschoene - Initial contribution + */ +public class Main { + public static void main(String[] args) { + System.out.println("Hello"); + } +} diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 0000000..584ff30 --- /dev/null +++ b/settings.gradle @@ -0,0 +1,4 @@ +rootProject.name = 'ros2rag' + +include 'ros2rag.base' +include 'ros2rag.example' -- GitLab