From fc88a20ed05756f1f79d9ace428969b36ab0b39e Mon Sep 17 00:00:00 2001 From: rschoene <rene.schoene@tu-dresden.de> Date: Wed, 29 Jul 2020 12:21:49 +0200 Subject: [PATCH] Renaming ros2rag.{base,tests} to ragconnect.{base,tests}. - rename nonterminal (M)Ros2Rag to (M)RagConnect, and attribute ros2rag to ragconnect - rename starter to safety - make receiverstub, receiverstub not depend on safety - make tests not depend on common (copied proto files) --- {ros2rag.base => ragconnect.base}/.gitignore | 0 .../build.gradle | 64 +++++------ .../src/main/jastadd/Analysis.jrag | 4 +- .../src/main/jastadd/Errors.jrag | 22 ++-- .../src/main/jastadd/MustacheNodes.relast | 4 +- .../src/main/jastadd/NameResolution.jrag | 2 +- .../src/main/jastadd/Navigation.jrag | 20 ++-- .../src/main/jastadd/RagConnect.relast | 2 +- .../main/jastadd/backend/Configuration.jadd | 0 .../src/main/jastadd/backend/Generation.jadd | 46 ++++---- .../src/main/jastadd/backend/Mappings.jrag | 62 +++++------ .../src/main/jastadd/parser/Preamble.parser | 7 ++ .../src/main/jastadd/parser/RagConnect.parser | 12 +- .../src/main/jastadd/scanner/Header.flex | 17 +++ .../src/main/jastadd/scanner/Keywords.flex | 0 .../src/main/jastadd/scanner/Macros.flex | 0 .../main/jastadd/scanner/MappingContent.flex | 0 .../compiler/AppendableWriter.java | 2 +- .../ragconnect}/compiler/Compiler.java | 57 +++++----- .../ragconnect}/compiler/SimpleMain.java | 32 +++--- .../jastadd/ragconnect}/compiler/Utils.java | 2 +- .../compiler/options/CommandLine.java | 2 +- .../compiler/options/EnumOption.java | 2 +- .../compiler/options/FlagOption.java | 2 +- .../ragconnect}/compiler/options/Option.java | 2 +- .../compiler/options/StringOption.java | 2 +- .../src/main/resources/MqttHandler.jadd | 2 +- .../resources/dependencyDefinition.mustache | 0 .../src/main/resources/log4j2.xml | 0 .../resources/mappingApplication.mustache | 0 .../main/resources/mappingDefinition.mustache | 0 .../src/main/resources/mqtt.mustache | 2 +- .../src/main/resources/ragconnect.mustache | 0 .../main/resources/readDefinition.mustache | 0 .../main/resources/tokenComponent.mustache | 0 .../main/resources/writeDefinition.mustache | 0 .../.gitignore | 0 {ros2rag.tests => ragconnect.tests}/README.md | 0 .../build.gradle | 105 ++++++++++-------- .../test/01-input/defaultOnlyRead/README.md | 0 .../01-input/defaultOnlyRead/Test.ragconnect | 0 .../test/01-input/defaultOnlyRead/Test.relast | 0 .../test/01-input/defaultOnlyWrite/README.md | 0 .../test/01-input/defaultOnlyWrite/Test.jadd | 0 .../01-input/defaultOnlyWrite/Test.ragconnect | 0 .../01-input/defaultOnlyWrite/Test.relast | 0 .../src/test/01-input/errors/Errors.expected | 0 .../test/01-input/errors/Errors.ragconnect | 0 .../src/test/01-input/errors/Errors.relast | 0 .../src/test/01-input/errors/README.md | 0 .../src/test/01-input/example/README.md | 0 .../src/test/01-input/example/Test.jadd | 0 .../src/test/01-input/example/Test.ragconnect | 0 .../src/test/01-input/example/Test.relast | 0 .../src/test/01-input/read1write2/README.md | 0 .../src/test/01-input/read1write2/Test.jadd | 0 .../test/01-input/read1write2/Test.ragconnect | 0 .../src/test/01-input/read1write2/Test.relast | 0 .../src/test/01-input/read2write1/Test.jadd | 0 .../test/01-input/read2write1/Test.ragconnect | 0 .../src/test/01-input/read2write1/Test.relast | 0 .../src/test/03-after-relast}/.gitignore | 0 .../src/test/java-gen}/.gitignore | 0 .../ros2rag/tests/AbstractMqttTest.java | 0 .../ros2rag/tests/DefaultOnlyReadTest.java | 0 .../ros2rag/tests/DefaultOnlyWriteTest.java | 0 .../org/jastadd/ros2rag/tests/Errors.java | 2 +- .../jastadd/ros2rag/tests/ExampleTest.java | 0 .../ros2rag/tests/Read1Write2Test.java | 0 .../ros2rag/tests/Read2Write1Test.java | 0 .../org/jastadd/ros2rag/tests/TestUtils.java | 0 ragconnect.tests/src/test/proto/config.proto | 7 ++ .../src/test/proto/robot_state.proto | 37 ++++++ .../src/test/proto/trajectory.proto | 33 ++++++ .../src/main/jastadd/parser/Preamble.parser | 7 -- .../src/main/jastadd/scanner/Header.flex | 17 --- ros2rag.common/build.gradle | 2 - ros2rag.goal/build.gradle | 16 +-- .../{GoalModel.ros2rag => GoalModel.connect} | 0 ros2rag.receiverstub/build.gradle | 68 +++++++++++- .../src/main/jastadd/Receiver.ast | 1 + .../src/main/jastadd/Receiver.connect | 0 .../st/ros2rag/receiverstub/ReceiverMain.java | 2 +- {ros2rag.tests => ros2rag.safety}/.gitignore | 0 .../build.gradle | 10 +- .../src/main/jastadd/Computation.jrag | 0 .../src/main/jastadd/Navigation.jrag | 0 .../src/main/jastadd/SafetyModel.connect | 0 .../src/main/jastadd/SafetyModel.jadd | 0 .../src/main/jastadd/SafetyModel.relast | 0 .../inf/st/ros2rag/starter/StarterMain.java | 0 .../src/main/resources/log4j2.xml | 0 ros2rag.senderstub/build.gradle | 68 +++++++++++- .../src/main/jastadd/Sender.ast | 1 + .../src/main/jastadd/Sender.connect | 0 .../inf/st/ros2rag/senderstub/SenderMain.java | 2 +- ros2rag.tests/src/test/java-gen/.gitignore | 2 - ros2rag.tests/src/test/proto | 1 - safety.sh | 3 + settings.gradle | 6 +- starter.sh | 3 - 101 files changed, 492 insertions(+), 270 deletions(-) rename {ros2rag.base => ragconnect.base}/.gitignore (100%) rename {ros2rag.base => ragconnect.base}/build.gradle (61%) rename {ros2rag.base => ragconnect.base}/src/main/jastadd/Analysis.jrag (84%) rename {ros2rag.base => ragconnect.base}/src/main/jastadd/Errors.jrag (91%) rename {ros2rag.base => ragconnect.base}/src/main/jastadd/MustacheNodes.relast (75%) rename {ros2rag.base => ragconnect.base}/src/main/jastadd/NameResolution.jrag (79%) rename {ros2rag.base => ragconnect.base}/src/main/jastadd/Navigation.jrag (83%) rename ros2rag.base/src/main/jastadd/Ros2Rag.relast => ragconnect.base/src/main/jastadd/RagConnect.relast (89%) rename {ros2rag.base => ragconnect.base}/src/main/jastadd/backend/Configuration.jadd (100%) rename {ros2rag.base => ragconnect.base}/src/main/jastadd/backend/Generation.jadd (88%) rename {ros2rag.base => ragconnect.base}/src/main/jastadd/backend/Mappings.jrag (76%) create mode 100644 ragconnect.base/src/main/jastadd/parser/Preamble.parser rename ros2rag.base/src/main/jastadd/parser/Ros2Rag.parser => ragconnect.base/src/main/jastadd/parser/RagConnect.parser (86%) create mode 100644 ragconnect.base/src/main/jastadd/scanner/Header.flex rename {ros2rag.base => ragconnect.base}/src/main/jastadd/scanner/Keywords.flex (100%) rename {ros2rag.base => ragconnect.base}/src/main/jastadd/scanner/Macros.flex (100%) rename {ros2rag.base => ragconnect.base}/src/main/jastadd/scanner/MappingContent.flex (100%) rename {ros2rag.base/src/main/java/org/jastadd/ros2rag => ragconnect.base/src/main/java/org/jastadd/ragconnect}/compiler/AppendableWriter.java (93%) rename {ros2rag.base/src/main/java/org/jastadd/ros2rag => ragconnect.base/src/main/java/org/jastadd/ragconnect}/compiler/Compiler.java (76%) rename {ros2rag.base/src/main/java/org/jastadd/ros2rag => ragconnect.base/src/main/java/org/jastadd/ragconnect}/compiler/SimpleMain.java (81%) rename {ros2rag.base/src/main/java/org/jastadd/ros2rag => ragconnect.base/src/main/java/org/jastadd/ragconnect}/compiler/Utils.java (90%) rename {ros2rag.base/src/main/java/org/jastadd/ros2rag => ragconnect.base/src/main/java/org/jastadd/ragconnect}/compiler/options/CommandLine.java (98%) rename {ros2rag.base/src/main/java/org/jastadd/ros2rag => ragconnect.base/src/main/java/org/jastadd/ragconnect}/compiler/options/EnumOption.java (97%) rename {ros2rag.base/src/main/java/org/jastadd/ros2rag => ragconnect.base/src/main/java/org/jastadd/ragconnect}/compiler/options/FlagOption.java (91%) rename {ros2rag.base/src/main/java/org/jastadd/ros2rag => ragconnect.base/src/main/java/org/jastadd/ragconnect}/compiler/options/Option.java (96%) rename {ros2rag.base/src/main/java/org/jastadd/ros2rag => ragconnect.base/src/main/java/org/jastadd/ragconnect}/compiler/options/StringOption.java (93%) rename {ros2rag.base => ragconnect.base}/src/main/resources/MqttHandler.jadd (99%) rename {ros2rag.base => ragconnect.base}/src/main/resources/dependencyDefinition.mustache (100%) rename {ros2rag.base => ragconnect.base}/src/main/resources/log4j2.xml (100%) rename {ros2rag.base => ragconnect.base}/src/main/resources/mappingApplication.mustache (100%) rename {ros2rag.base => ragconnect.base}/src/main/resources/mappingDefinition.mustache (100%) rename {ros2rag.base => ragconnect.base}/src/main/resources/mqtt.mustache (92%) rename ros2rag.base/src/main/resources/ros2rag.mustache => ragconnect.base/src/main/resources/ragconnect.mustache (100%) rename {ros2rag.base => ragconnect.base}/src/main/resources/readDefinition.mustache (100%) rename {ros2rag.base => ragconnect.base}/src/main/resources/tokenComponent.mustache (100%) rename {ros2rag.base => ragconnect.base}/src/main/resources/writeDefinition.mustache (100%) rename {ros2rag.starter => ragconnect.tests}/.gitignore (100%) rename {ros2rag.tests => ragconnect.tests}/README.md (100%) rename {ros2rag.tests => ragconnect.tests}/build.gradle (55%) rename {ros2rag.tests => ragconnect.tests}/src/test/01-input/defaultOnlyRead/README.md (100%) rename ros2rag.tests/src/test/01-input/defaultOnlyRead/Test.ros2rag => ragconnect.tests/src/test/01-input/defaultOnlyRead/Test.ragconnect (100%) rename {ros2rag.tests => ragconnect.tests}/src/test/01-input/defaultOnlyRead/Test.relast (100%) rename {ros2rag.tests => ragconnect.tests}/src/test/01-input/defaultOnlyWrite/README.md (100%) rename {ros2rag.tests => ragconnect.tests}/src/test/01-input/defaultOnlyWrite/Test.jadd (100%) rename ros2rag.tests/src/test/01-input/defaultOnlyWrite/Test.ros2rag => ragconnect.tests/src/test/01-input/defaultOnlyWrite/Test.ragconnect (100%) rename {ros2rag.tests => ragconnect.tests}/src/test/01-input/defaultOnlyWrite/Test.relast (100%) rename {ros2rag.tests => ragconnect.tests}/src/test/01-input/errors/Errors.expected (100%) rename ros2rag.tests/src/test/01-input/errors/Errors.ros2rag => ragconnect.tests/src/test/01-input/errors/Errors.ragconnect (100%) rename {ros2rag.tests => ragconnect.tests}/src/test/01-input/errors/Errors.relast (100%) rename {ros2rag.tests => ragconnect.tests}/src/test/01-input/errors/README.md (100%) rename {ros2rag.tests => ragconnect.tests}/src/test/01-input/example/README.md (100%) rename {ros2rag.tests => ragconnect.tests}/src/test/01-input/example/Test.jadd (100%) rename ros2rag.tests/src/test/01-input/example/Test.ros2rag => ragconnect.tests/src/test/01-input/example/Test.ragconnect (100%) rename {ros2rag.tests => ragconnect.tests}/src/test/01-input/example/Test.relast (100%) rename {ros2rag.tests => ragconnect.tests}/src/test/01-input/read1write2/README.md (100%) rename {ros2rag.tests => ragconnect.tests}/src/test/01-input/read1write2/Test.jadd (100%) rename ros2rag.tests/src/test/01-input/read1write2/Test.ros2rag => ragconnect.tests/src/test/01-input/read1write2/Test.ragconnect (100%) rename {ros2rag.tests => ragconnect.tests}/src/test/01-input/read1write2/Test.relast (100%) rename {ros2rag.tests => ragconnect.tests}/src/test/01-input/read2write1/Test.jadd (100%) rename ros2rag.tests/src/test/01-input/read2write1/Test.ros2rag => ragconnect.tests/src/test/01-input/read2write1/Test.ragconnect (100%) rename {ros2rag.tests => ragconnect.tests}/src/test/01-input/read2write1/Test.relast (100%) rename {ros2rag.tests/src/test/02-after-ros2rag => ragconnect.tests/src/test/03-after-relast}/.gitignore (100%) rename {ros2rag.tests/src/test/03-after-relast => ragconnect.tests/src/test/java-gen}/.gitignore (100%) rename {ros2rag.tests => ragconnect.tests}/src/test/java/org/jastadd/ros2rag/tests/AbstractMqttTest.java (100%) rename {ros2rag.tests => ragconnect.tests}/src/test/java/org/jastadd/ros2rag/tests/DefaultOnlyReadTest.java (100%) rename {ros2rag.tests => ragconnect.tests}/src/test/java/org/jastadd/ros2rag/tests/DefaultOnlyWriteTest.java (100%) rename {ros2rag.tests => ragconnect.tests}/src/test/java/org/jastadd/ros2rag/tests/Errors.java (98%) rename {ros2rag.tests => ragconnect.tests}/src/test/java/org/jastadd/ros2rag/tests/ExampleTest.java (100%) rename {ros2rag.tests => ragconnect.tests}/src/test/java/org/jastadd/ros2rag/tests/Read1Write2Test.java (100%) rename {ros2rag.tests => ragconnect.tests}/src/test/java/org/jastadd/ros2rag/tests/Read2Write1Test.java (100%) rename {ros2rag.tests => ragconnect.tests}/src/test/java/org/jastadd/ros2rag/tests/TestUtils.java (100%) create mode 100644 ragconnect.tests/src/test/proto/config.proto create mode 100644 ragconnect.tests/src/test/proto/robot_state.proto create mode 100644 ragconnect.tests/src/test/proto/trajectory.proto delete mode 100644 ros2rag.base/src/main/jastadd/parser/Preamble.parser delete mode 100644 ros2rag.base/src/main/jastadd/scanner/Header.flex rename ros2rag.goal/src/main/jastadd/{GoalModel.ros2rag => GoalModel.connect} (100%) create mode 100644 ros2rag.receiverstub/src/main/jastadd/Receiver.ast create mode 100644 ros2rag.receiverstub/src/main/jastadd/Receiver.connect rename {ros2rag.tests => ros2rag.safety}/.gitignore (100%) rename {ros2rag.starter => ros2rag.safety}/build.gradle (90%) rename {ros2rag.starter => ros2rag.safety}/src/main/jastadd/Computation.jrag (100%) rename {ros2rag.starter => ros2rag.safety}/src/main/jastadd/Navigation.jrag (100%) rename ros2rag.starter/src/main/jastadd/Definitions.ros2rag => ros2rag.safety/src/main/jastadd/SafetyModel.connect (100%) rename ros2rag.starter/src/main/jastadd/RobotModel.jadd => ros2rag.safety/src/main/jastadd/SafetyModel.jadd (100%) rename ros2rag.starter/src/main/jastadd/RobotModel.relast => ros2rag.safety/src/main/jastadd/SafetyModel.relast (100%) rename {ros2rag.starter => ros2rag.safety}/src/main/java/de/tudresden/inf/st/ros2rag/starter/StarterMain.java (100%) rename {ros2rag.starter => ros2rag.safety}/src/main/resources/log4j2.xml (100%) create mode 100644 ros2rag.senderstub/src/main/jastadd/Sender.ast create mode 100644 ros2rag.senderstub/src/main/jastadd/Sender.connect delete mode 100644 ros2rag.tests/src/test/java-gen/.gitignore delete mode 120000 ros2rag.tests/src/test/proto create mode 100755 safety.sh delete mode 100755 starter.sh diff --git a/ros2rag.base/.gitignore b/ragconnect.base/.gitignore similarity index 100% rename from ros2rag.base/.gitignore rename to ragconnect.base/.gitignore diff --git a/ros2rag.base/build.gradle b/ragconnect.base/build.gradle similarity index 61% rename from ros2rag.base/build.gradle rename to ragconnect.base/build.gradle index a6a7882..c04195a 100644 --- a/ros2rag.base/build.gradle +++ b/ragconnect.base/build.gradle @@ -3,7 +3,7 @@ apply plugin: 'application' sourceCompatibility = 1.8 -mainClassName = 'org.jastadd.ros2rag.compiler.Compiler' +mainClassName = 'org.jastadd.ragconnect.compiler.Compiler' repositories { jcenter() @@ -37,7 +37,7 @@ test { jar { manifest { - attributes "Main-Class": 'org.jastadd.ros2rag.compiler.Compiler' + attributes "Main-Class": 'org.jastadd.ragconnect.compiler.Compiler' } from { @@ -51,47 +51,47 @@ task relast(type: JavaExec) { doFirst { delete "src/gen/jastadd/*.ast" - delete "src/gen/jastadd/Ros2Rag.jadd" - delete "src/gen/jastadd/Ros2RagRefResolver.jadd" - delete "src/gen/jastadd/Ros2RagResolverStubs.jrag" + delete "src/gen/jastadd/RagConnect.jadd" + delete "src/gen/jastadd/RagConnectRefResolver.jadd" + delete "src/gen/jastadd/RagConnectResolverStubs.jrag" mkdir "src/gen/jastadd/" } args = [ "../libs/relast.jar", "../relast.preprocessor/src/main/jastadd/RelAst.relast", - "./src/main/jastadd/Ros2Rag.relast", + "./src/main/jastadd/RagConnect.relast", "./src/main/jastadd/MustacheNodes.relast", "--listClass=java.util.ArrayList", "--jastAddList=JastAddList", "--useJastAddNames", "--file", "--resolverHelper", - "--grammarName=./src/gen/jastadd/Ros2Rag" + "--grammarName=./src/gen/jastadd/RagConnect" ] inputs.files file("../libs/relast.jar"), file("../relast.preprocessor/src/main/jastadd/RelAST.relast"), - file("./src/main/jastadd/Ros2Rag.relast") + file("./src/main/jastadd/RagConnect.relast") file("./src/main/jastadd/MustacheNodes.relast") - outputs.files file("./src/gen/jastadd/Ros2Rag.ast"), - file("./src/gen/jastadd/Ros2Rag.jadd"), - file("./src/gen/jastadd/Ros2RagRefResolver.jadd"), - file('./src/gen/jastadd/Ros2RagResolverStubs.jrag') + outputs.files file("./src/gen/jastadd/RagConnect.ast"), + file("./src/gen/jastadd/RagConnect.jadd"), + file("./src/gen/jastadd/RagConnectRefResolver.jadd"), + file('./src/gen/jastadd/RagConnectResolverStubs.jrag') } jastadd { configureModuleBuild() modules { //noinspection GroovyAssignabilityCheck - module("Ros2Rag") { + module("RagConnect") { java { basedir ".." include "relast.preprocessor/main/**/*.java" include "relast.preprocessor/gen/**/*.java" - include "ros2rag.base/src/main/**/*.java" - include "ros2rag.base/src/gen/**/*.java" + include "ragconnect.base/src/main/**/*.java" + include "ragconnect.base/src/gen/**/*.java" } jastadd { @@ -99,23 +99,23 @@ jastadd { include "relast.preprocessor/src/main/jastadd/**/*.ast" include "relast.preprocessor/src/main/jastadd/**/*.jadd" include "relast.preprocessor/src/main/jastadd/**/*.jrag" - include "ros2rag.base/src/main/jastadd/**/*.ast" - include "ros2rag.base/src/main/jastadd/**/*.jadd" - include "ros2rag.base/src/main/jastadd/**/*.jrag" - include "ros2rag.base/src/gen/jastadd/**/*.ast" - include "ros2rag.base/src/gen/jastadd/**/*.jadd" - include "ros2rag.base/src/gen/jastadd/**/*.jrag" + include "ragconnect.base/src/main/jastadd/**/*.ast" + include "ragconnect.base/src/main/jastadd/**/*.jadd" + include "ragconnect.base/src/main/jastadd/**/*.jrag" + include "ragconnect.base/src/gen/jastadd/**/*.ast" + include "ragconnect.base/src/gen/jastadd/**/*.jadd" + include "ragconnect.base/src/gen/jastadd/**/*.jrag" } scanner { basedir ".." - include "ros2rag.base/src/main/jastadd/scanner/Header.flex", [-5] + include "ragconnect.base/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 "ros2rag.base/src/main/jastadd/scanner/Macros.flex", [-3] + include "ragconnect.base/src/main/jastadd/scanner/Macros.flex", [-3] include "relast.preprocessor/src/main/jastadd/scanner/RulesPreamble.flex", [-2] - include "ros2rag.base/src/main/jastadd/scanner/MappingContent.flex", [-1] - include "ros2rag.base/src/main/jastadd/scanner/Keywords.flex" + include "ragconnect.base/src/main/jastadd/scanner/MappingContent.flex", [-1] + include "ragconnect.base/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] @@ -123,8 +123,8 @@ jastadd { parser { basedir ".." - include "ros2rag.base/src/main/jastadd/parser/Preamble.parser" - include "ros2rag.base/src/main/jastadd/parser/Ros2Rag.parser" + include "ragconnect.base/src/main/jastadd/parser/Preamble.parser" + include "ragconnect.base/src/main/jastadd/parser/RagConnect.parser" include "relast.preprocessor/src/main/jastadd/parser/RelAst.parser" } } @@ -141,18 +141,18 @@ jastadd { } - module = "Ros2Rag" + module = "RagConnect" - astPackage = 'org.jastadd.ros2rag.ast' + astPackage = 'org.jastadd.ragconnect.ast' - parser.name = 'Ros2RagParser' + parser.name = 'RagConnectParser' 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" + scanner.genDir = "src/gen/java/org/jastadd/ragconnect/scanner" + parser.genDir = "src/gen/java/org/jastadd/ragconnect/parser" jastaddOptions = ["--lineColumnNumbers", "--List=JastAddList", "--safeLazy", "--visitCheck=true", "--rewrite=cnta", "--cache=all"] } diff --git a/ros2rag.base/src/main/jastadd/Analysis.jrag b/ragconnect.base/src/main/jastadd/Analysis.jrag similarity index 84% rename from ros2rag.base/src/main/jastadd/Analysis.jrag rename to ragconnect.base/src/main/jastadd/Analysis.jrag index 228a347..da9a88b 100644 --- a/ros2rag.base/src/main/jastadd/Analysis.jrag +++ b/ragconnect.base/src/main/jastadd/Analysis.jrag @@ -1,7 +1,7 @@ aspect Analysis { // --- lookupTokenUpdateDefinition --- inh TokenUpdateDefinition TokenUpdateDefinition.lookupTokenUpdateDefinition(TokenComponent token); - eq Ros2Rag.getUpdateDefinition().lookupTokenUpdateDefinition(TokenComponent token) { + eq RagConnect.getUpdateDefinition().lookupTokenUpdateDefinition(TokenComponent token) { for (UpdateDefinition def : getUpdateDefinitionList()) { if (def.isTokenUpdateDefinition() && def.asTokenUpdateDefinition().getToken().equals(token)) { return def.asTokenUpdateDefinition(); @@ -12,7 +12,7 @@ aspect Analysis { // --- lookupDependencyDefinition --- inh DependencyDefinition DependencyDefinition.lookupDependencyDefinition(TypeDecl source, String id); - eq Ros2Rag.getDependencyDefinition().lookupDependencyDefinition(TypeDecl source, String id) { + eq RagConnect.getDependencyDefinition().lookupDependencyDefinition(TypeDecl source, String id) { for (DependencyDefinition def : getDependencyDefinitionList()) { if (def.getID().equals(id) && def.getSource().containingTypeDecl().equals(source)) { return def; diff --git a/ros2rag.base/src/main/jastadd/Errors.jrag b/ragconnect.base/src/main/jastadd/Errors.jrag similarity index 91% rename from ros2rag.base/src/main/jastadd/Errors.jrag rename to ragconnect.base/src/main/jastadd/Errors.jrag index ef223a4..4ea4c18 100644 --- a/ros2rag.base/src/main/jastadd/Errors.jrag +++ b/ragconnect.base/src/main/jastadd/Errors.jrag @@ -3,17 +3,17 @@ import java.util.TreeSet; import java.util.LinkedList; aspect Errors { - coll Set<ErrorMessage> Ros2Rag.errors() + coll Set<ErrorMessage> RagConnect.errors() [new TreeSet<ErrorMessage>()] - root Ros2Rag; + root RagConnect; ReadFromMqttDefinition contributes error("Read definition already defined for " + getToken().getName()) when isAlreadyDefined() - to Ros2Rag.errors(); + to RagConnect.errors(); ReadFromMqttDefinition contributes error("Reading target token must not be an NTA token!") when getToken().getNTA() - to Ros2Rag.errors(); + to RagConnect.errors(); // if first mapping is null, then suitableDefaultMapping() == null ReadFromMqttDefinition contributes error("No suitable default mapping found for type " + @@ -21,32 +21,32 @@ aspect Errors { ? getToken().getJavaTypeUse().prettyPrint() : getMappingList().get(0).getFromType().prettyPrint())) when effectiveMappings().get(0) == null - to Ros2Rag.errors(); + to RagConnect.errors(); ReadFromMqttDefinition contributes error("to-type of last mapping must be type of the Token!") when getToken().getJavaTypeUse().prettyPrint().equals( effectiveMappings().get(effectiveMappings().size() - 1)) - to Ros2Rag.errors(); + to RagConnect.errors(); WriteToMqttDefinition contributes error("Writing target token must be an NTA token!") when !getToken().getNTA() - to Ros2Rag.errors(); + to RagConnect.errors(); WriteToMqttDefinition contributes error("Write definition already defined for " + getToken().getName()) when isAlreadyDefined() - to Ros2Rag.errors(); + to RagConnect.errors(); DependencyDefinition contributes error("Dependency definition already defined for " + getSource().containingTypeDecl().getName() + " with name " + getID()) when isAlreadyDefined() - to Ros2Rag.errors(); + to RagConnect.errors(); DependencyDefinition contributes error("The name of a dependency definition must not be equal to a list-node on the source") when isAlreadyDefinedAsList() - to Ros2Rag.errors(); + to RagConnect.errors(); DependencyDefinition contributes error("There must be a write update definition targeting " + getSource().parentTypeypeAndName() + " for dependency definition " + getID()) when targetUpdateDefinition() == null - to Ros2Rag.errors(); + to RagConnect.errors(); } aspect ErrorHelpers { diff --git a/ros2rag.base/src/main/jastadd/MustacheNodes.relast b/ragconnect.base/src/main/jastadd/MustacheNodes.relast similarity index 75% rename from ros2rag.base/src/main/jastadd/MustacheNodes.relast rename to ragconnect.base/src/main/jastadd/MustacheNodes.relast index 69d4280..f213a35 100644 --- a/ros2rag.base/src/main/jastadd/MustacheNodes.relast +++ b/ragconnect.base/src/main/jastadd/MustacheNodes.relast @@ -1,7 +1,7 @@ //TypeComponentMustache ; //rel TypeComponentMustache.TypeComponent -> TypeComponent ; -MRos2Rag ::= ReadDefinition:MReadDefinition* WriteDefinition:MWriteDefinition* MappingDefinition:MMappingDefinition* DependencyDefinition:MDependencyDefinition* RootTypeComponent:MTypeComponent* TokenComponent:MTokenComponent*; +MRagConnect ::= ReadDefinition:MReadDefinition* WriteDefinition:MWriteDefinition* MappingDefinition:MMappingDefinition* DependencyDefinition:MDependencyDefinition* RootTypeComponent:MTypeComponent* TokenComponent:MTokenComponent*; abstract MUpdateDefinition ::= InnerMappingDefinition:MInnerMappingDefinition*; MReadDefinition : MUpdateDefinition; MWriteDefinition : MUpdateDefinition; @@ -11,7 +11,7 @@ MDependencyDefinition; MTypeComponent; MTokenComponent; -rel MRos2Rag.Ros2Rag -> Ros2Rag; +rel MRagConnect.RagConnect -> RagConnect; rel MInnerMappingDefinition.MappingDefinition -> MappingDefinition; rel MReadDefinition.ReadFromMqttDefinition -> ReadFromMqttDefinition; rel MWriteDefinition.WriteToMqttDefinition -> WriteToMqttDefinition; diff --git a/ros2rag.base/src/main/jastadd/NameResolution.jrag b/ragconnect.base/src/main/jastadd/NameResolution.jrag similarity index 79% rename from ros2rag.base/src/main/jastadd/NameResolution.jrag rename to ragconnect.base/src/main/jastadd/NameResolution.jrag index fc44858..6d5ebe2 100644 --- a/ros2rag.base/src/main/jastadd/NameResolution.jrag +++ b/ragconnect.base/src/main/jastadd/NameResolution.jrag @@ -2,7 +2,7 @@ aspect NameResolution { refine RefResolverStubs eq UpdateDefinition.resolveMappingByToken(String id, int position) { // return a MappingDefinition - for (MappingDefinition mappingDefinition : ros2rag().getMappingDefinitionList()) { + for (MappingDefinition mappingDefinition : ragconnect().getMappingDefinitionList()) { if (mappingDefinition.getID().equals(id)) { return mappingDefinition; } diff --git a/ros2rag.base/src/main/jastadd/Navigation.jrag b/ragconnect.base/src/main/jastadd/Navigation.jrag similarity index 83% rename from ros2rag.base/src/main/jastadd/Navigation.jrag rename to ragconnect.base/src/main/jastadd/Navigation.jrag index a4f21e6..b031267 100644 --- a/ros2rag.base/src/main/jastadd/Navigation.jrag +++ b/ragconnect.base/src/main/jastadd/Navigation.jrag @@ -1,17 +1,17 @@ aspect Navigation { // --- program --- - eq Ros2Rag.getChild().program() = getProgram(); - eq MRos2Rag.getChild().program() = getRos2Rag().program(); + eq RagConnect.getChild().program() = getProgram(); + eq MRagConnect.getChild().program() = getRagConnect().program(); - // --- ros2rag --- - inh Ros2Rag ASTNode.ros2rag(); - eq Ros2Rag.getChild().ros2rag() = this; - eq MRos2Rag.getChild().ros2rag() = getRos2Rag(); + // --- ragconnect --- + inh RagConnect ASTNode.ragconnect(); + eq RagConnect.getChild().ragconnect() = this; + eq MRagConnect.getChild().ragconnect() = getRagConnect(); // --- containedFile (first equation should be in preprocessor) --- eq Program.getChild().containedFile() = null; - eq Ros2Rag.getChild().containedFile() = null; + eq RagConnect.getChild().containedFile() = null; // --- isTypeComponent (should be in preprocessor) --- syn boolean Component.isTypeComponent() = false; @@ -32,9 +32,9 @@ aspect Navigation { // --- containedFileName (should replace containedFile in preprocessor) --- inh String ASTNode.containedFileName(); eq GrammarFile.getChild().containedFileName() = getFileName(); - eq Ros2Rag.getChild().containedFileName() = getFileName(); + eq RagConnect.getChild().containedFileName() = getFileName(); eq Program.getChild().containedFileName() = null; - eq MRos2Rag.getChild().containedFileName() = null; + eq MRagConnect.getChild().containedFileName() = null; // --- isTokenUpdateDefinition --- syn boolean UpdateDefinition.isTokenUpdateDefinition() = false; @@ -59,7 +59,7 @@ aspect Navigation { // --- targetUpdateDefinition --- syn WriteToMqttDefinition DependencyDefinition.targetUpdateDefinition() { // resolve definition in here, as we do not need resolveMethod in any other place (yet) - for (UpdateDefinition updateDefinition : ros2rag().getUpdateDefinitionList()) { + for (UpdateDefinition updateDefinition : ragconnect().getUpdateDefinitionList()) { if (updateDefinition.isWriteToMqttDefinition() && updateDefinition.asWriteToMqttDefinition().getToken().equals(this.getTarget())) { return updateDefinition.asWriteToMqttDefinition(); diff --git a/ros2rag.base/src/main/jastadd/Ros2Rag.relast b/ragconnect.base/src/main/jastadd/RagConnect.relast similarity index 89% rename from ros2rag.base/src/main/jastadd/Ros2Rag.relast rename to ragconnect.base/src/main/jastadd/RagConnect.relast index e1a84e8..e3ab24a 100644 --- a/ros2rag.base/src/main/jastadd/Ros2Rag.relast +++ b/ragconnect.base/src/main/jastadd/RagConnect.relast @@ -1,4 +1,4 @@ -Ros2Rag ::= UpdateDefinition* DependencyDefinition* MappingDefinition* Program <FileName> ; +RagConnect ::= UpdateDefinition* DependencyDefinition* MappingDefinition* Program <FileName> ; abstract UpdateDefinition ::= <AlwaysApply:boolean> ; diff --git a/ros2rag.base/src/main/jastadd/backend/Configuration.jadd b/ragconnect.base/src/main/jastadd/backend/Configuration.jadd similarity index 100% rename from ros2rag.base/src/main/jastadd/backend/Configuration.jadd rename to ragconnect.base/src/main/jastadd/backend/Configuration.jadd diff --git a/ros2rag.base/src/main/jastadd/backend/Generation.jadd b/ragconnect.base/src/main/jastadd/backend/Generation.jadd similarity index 88% rename from ros2rag.base/src/main/jastadd/backend/Generation.jadd rename to ragconnect.base/src/main/jastadd/backend/Generation.jadd index 9179b3d..060d4df 100644 --- a/ros2rag.base/src/main/jastadd/backend/Generation.jadd +++ b/ragconnect.base/src/main/jastadd/backend/Generation.jadd @@ -26,15 +26,16 @@ aspect GenerationUtils { */ aspect AttributesForMustache { - // --- MRos2Rag --- - eq MRos2Rag.getChild().mqttHandlerAttribute() = mqttHandlerAttribute(); - eq MRos2Rag.getChild().mqttHandlerField() = mqttHandlerField(); + // --- MRagConnect --- + eq MRagConnect.getChild().mqttHandlerAttribute() = mqttHandlerAttribute(); + eq MRagConnect.getChild().mqttHandlerField() = mqttHandlerField(); + eq MRagConnect.getRootTypeComponent(int i).isFirst() = i == 0; - syn String MRos2Rag.mqttHandlerAttribute() = getRos2Rag().mqttHandlerAttribute(); - syn String MRos2Rag.mqttHandlerField() = getRos2Rag().mqttHandlerField(); - syn String MRos2Rag.mqttSetHostMethod() = getRos2Rag().mqttSetHostMethod(); - syn String MRos2Rag.mqttWaitUntilReadyMethod() = getRos2Rag().mqttWaitUntilReadyMethod(); - syn String MRos2Rag.mqttCloseMethod() = getRos2Rag().mqttCloseMethod(); + syn String MRagConnect.mqttHandlerAttribute() = getRagConnect().mqttHandlerAttribute(); + syn String MRagConnect.mqttHandlerField() = getRagConnect().mqttHandlerField(); + syn String MRagConnect.mqttSetHostMethod() = getRagConnect().mqttSetHostMethod(); + syn String MRagConnect.mqttWaitUntilReadyMethod() = getRagConnect().mqttWaitUntilReadyMethod(); + syn String MRagConnect.mqttCloseMethod() = getRagConnect().mqttCloseMethod(); // --- MUpdateDefinition --- syn String MUpdateDefinition.preemptiveExpectedValue(); @@ -116,6 +117,7 @@ aspect AttributesForMustache { syn String MTypeComponent.name() = getTypeComponent().getName(); inh String MTypeComponent.mqttHandlerAttribute(); inh String MTypeComponent.mqttHandlerField(); + inh boolean MTypeComponent.isFirst(); // --- MTokenComponent --- syn String MTokenComponent.parentTypeName() = getTokenComponent().containingTypeDecl().getName(); @@ -124,9 +126,9 @@ aspect AttributesForMustache { syn String MTokenComponent.internalName() = getTokenComponent().internalName(); // --- toMustache --- - syn lazy MRos2Rag Ros2Rag.toMustache() { - MRos2Rag result = new MRos2Rag(); - result.setRos2Rag(this); + syn lazy MRagConnect RagConnect.toMustache() { + MRagConnect result = new MRagConnect(); + result.setRagConnect(this); for (UpdateDefinition def : getUpdateDefinitionList()) { if (def.isWriteToMqttDefinition()) { result.addWriteDefinition(def.asWriteToMqttDefinition().toMustache()); @@ -216,29 +218,29 @@ aspect AspectGeneration { syn String DependencyDefinition.internalRelationPrefix() = "_internal_" + getID(); syn String DependencyDefinition.internalTokenName() = getSource().internalName(); - syn String Ros2Rag.mqttHandlerAttribute() = "_mqttHandler"; - syn String Ros2Rag.mqttHandlerField() = "_mqttHandler"; + syn String RagConnect.mqttHandlerAttribute() = "_mqttHandler"; + syn String RagConnect.mqttHandlerField() = "_mqttHandler"; - syn String Ros2Rag.mqttSetHostMethod() = "MqttSetHost"; - syn String Ros2Rag.mqttWaitUntilReadyMethod() = "MqttWaitUntilReady"; - syn String Ros2Rag.mqttCloseMethod() = "MqttCloseConnections"; + syn String RagConnect.mqttSetHostMethod() = "MqttSetHost"; + syn String RagConnect.mqttWaitUntilReadyMethod() = "MqttWaitUntilReady"; + syn String RagConnect.mqttCloseMethod() = "MqttCloseConnections"; // naming copy attributes // --- mqttHandlerAttribute --- inh String UpdateDefinition.mqttHandlerAttribute(); inh String MappingDefinition.mqttHandlerAttribute(); inh String DependencyDefinition.mqttHandlerAttribute(); - eq Ros2Rag.getChild().mqttHandlerAttribute() = mqttHandlerAttribute(); + eq RagConnect.getChild().mqttHandlerAttribute() = mqttHandlerAttribute(); // --- rootNodeName --- syn String ASTNode.rootNodeName() = rootNode.getName(); - public String Ros2Rag.generateAspect(String rootNodeName) { + public String RagConnect.generateAspect(String rootNodeName) { rootNode = getProgram().resolveTypeDecl(rootNodeName); return toMustache().generateAspect(); } - public String MRos2Rag.generateAspect() { + public String MRagConnect.generateAspect() { StringBuilder sb = new StringBuilder(); com.github.mustachejava.reflect.ReflectionObjectHandler roh = new com.github.mustachejava.reflect.ReflectionObjectHandler() { @Override @@ -257,14 +259,14 @@ aspect AspectGeneration { }; com.github.mustachejava.DefaultMustacheFactory mf = new com.github.mustachejava.DefaultMustacheFactory(); mf.setObjectHandler(roh); - com.github.mustachejava.Mustache m = mf.compile("ros2rag.mustache"); - m.execute(new java.io.PrintWriter(new org.jastadd.ros2rag.compiler.AppendableWriter(sb)), this); + com.github.mustachejava.Mustache m = mf.compile("ragconnect.mustache"); + m.execute(new java.io.PrintWriter(new org.jastadd.ragconnect.compiler.AppendableWriter(sb)), this); return sb.toString(); } } aspect RelationGeneration { - syn java.util.List<Relation> Ros2Rag.additionalRelations() { + syn java.util.List<Relation> RagConnect.additionalRelations() { java.util.List<Relation> result = new java.util.ArrayList<>(); for (DependencyDefinition dd : getDependencyDefinitionList()) { result.add(dd.getRelationToCreate()); diff --git a/ros2rag.base/src/main/jastadd/backend/Mappings.jrag b/ragconnect.base/src/main/jastadd/backend/Mappings.jrag similarity index 76% rename from ros2rag.base/src/main/jastadd/backend/Mappings.jrag rename to ragconnect.base/src/main/jastadd/backend/Mappings.jrag index 600ce92..8232e8f 100644 --- a/ros2rag.base/src/main/jastadd/backend/Mappings.jrag +++ b/ragconnect.base/src/main/jastadd/backend/Mappings.jrag @@ -1,6 +1,6 @@ aspect DefaultMappings { - private DefaultMappingDefinition Ros2Rag.baseDefaultMappingDefinitionFromBytes(String typeName) { + private DefaultMappingDefinition RagConnect.baseDefaultMappingDefinitionFromBytes(String typeName) { DefaultMappingDefinition result = new DefaultMappingDefinition(); result.setID("_DefaultBytesTo" + Character.toUpperCase(typeName.charAt(0)) + typeName.substring(1) + "Mapping"); result.setFromType(new JavaArrayMappingDefinitionType(new SimpleJavaTypeUse("byte"))); @@ -9,7 +9,7 @@ aspect DefaultMappings { return result; } - private DefaultMappingDefinition Ros2Rag.baseDefaultMappingDefinitionToBytes(String typeName) { + private DefaultMappingDefinition RagConnect.baseDefaultMappingDefinitionToBytes(String typeName) { DefaultMappingDefinition result = new DefaultMappingDefinition(); result.setID("_Default" + Character.toUpperCase(typeName.charAt(0)) + typeName.substring(1) + "ToBytesMapping"); result.setFromType(new JavaMappingDefinitionType(new SimpleJavaTypeUse(typeName))); @@ -18,85 +18,85 @@ aspect DefaultMappings { return result; } - syn nta DefaultMappingDefinition Ros2Rag.defaultBytesToIntMapping() { + syn nta DefaultMappingDefinition RagConnect.defaultBytesToIntMapping() { DefaultMappingDefinition result = baseDefaultMappingDefinitionFromBytes("int"); result.setContent("return java.nio.ByteBuffer.wrap(bytes).getInt();"); return result; } - syn nta DefaultMappingDefinition Ros2Rag.defaultBytesToShortMapping() { + syn nta DefaultMappingDefinition RagConnect.defaultBytesToShortMapping() { DefaultMappingDefinition result = baseDefaultMappingDefinitionFromBytes("short"); result.setContent("return java.nio.ByteBuffer.wrap(bytes).getShort();"); return result; } - syn nta DefaultMappingDefinition Ros2Rag.defaultBytesToLongMapping() { + syn nta DefaultMappingDefinition RagConnect.defaultBytesToLongMapping() { DefaultMappingDefinition result = baseDefaultMappingDefinitionFromBytes("long"); result.setContent("return java.nio.ByteBuffer.wrap(bytes).getLong();"); return result; } - syn nta DefaultMappingDefinition Ros2Rag.defaultBytesToFloatMapping() { + syn nta DefaultMappingDefinition RagConnect.defaultBytesToFloatMapping() { DefaultMappingDefinition result = baseDefaultMappingDefinitionFromBytes("float"); result.setContent("return java.nio.ByteBuffer.wrap(bytes).getFloat();"); return result; } - syn nta DefaultMappingDefinition Ros2Rag.defaultBytesToDoubleMapping() { + syn nta DefaultMappingDefinition RagConnect.defaultBytesToDoubleMapping() { DefaultMappingDefinition result = baseDefaultMappingDefinitionFromBytes("double"); result.setContent("return java.nio.ByteBuffer.wrap(bytes).getDouble();"); return result; } - syn nta DefaultMappingDefinition Ros2Rag.defaultBytesToCharMapping() { + syn nta DefaultMappingDefinition RagConnect.defaultBytesToCharMapping() { DefaultMappingDefinition result = baseDefaultMappingDefinitionFromBytes("char"); result.setContent("return java.nio.ByteBuffer.wrap(bytes).getChar();"); return result; } - syn nta DefaultMappingDefinition Ros2Rag.defaultBytesToStringMapping() { + syn nta DefaultMappingDefinition RagConnect.defaultBytesToStringMapping() { DefaultMappingDefinition result = baseDefaultMappingDefinitionFromBytes("String"); result.setContent("return new String(bytes);"); return result; } - syn nta DefaultMappingDefinition Ros2Rag.defaultIntToBytesMapping() { + syn nta DefaultMappingDefinition RagConnect.defaultIntToBytesMapping() { DefaultMappingDefinition result = baseDefaultMappingDefinitionToBytes("int"); result.setContent("return java.nio.ByteBuffer.allocate(4).putInt(input).array();"); return result; } - syn nta DefaultMappingDefinition Ros2Rag.defaultShortToBytesMapping() { + syn nta DefaultMappingDefinition RagConnect.defaultShortToBytesMapping() { DefaultMappingDefinition result = baseDefaultMappingDefinitionToBytes("short"); result.setContent("return java.nio.ByteBuffer.allocate(2).putShort(input).array();"); return result; } - syn nta DefaultMappingDefinition Ros2Rag.defaultLongToBytesMapping() { + syn nta DefaultMappingDefinition RagConnect.defaultLongToBytesMapping() { DefaultMappingDefinition result = baseDefaultMappingDefinitionToBytes("long"); result.setContent("return java.nio.ByteBuffer.allocate(8).putLong(input).array();"); return result; } - syn nta DefaultMappingDefinition Ros2Rag.defaultFloatToBytesMapping() { + syn nta DefaultMappingDefinition RagConnect.defaultFloatToBytesMapping() { DefaultMappingDefinition result = baseDefaultMappingDefinitionToBytes("float"); result.setContent("return java.nio.ByteBuffer.allocate(4).putFloat(input).array();"); return result; } - syn nta DefaultMappingDefinition Ros2Rag.defaultDoubleToBytesMapping() { + syn nta DefaultMappingDefinition RagConnect.defaultDoubleToBytesMapping() { DefaultMappingDefinition result = baseDefaultMappingDefinitionToBytes("double"); result.setContent("return java.nio.ByteBuffer.allocate(8).putDouble(input).array();"); return result; } - syn nta DefaultMappingDefinition Ros2Rag.defaultCharToBytesMapping() { + syn nta DefaultMappingDefinition RagConnect.defaultCharToBytesMapping() { DefaultMappingDefinition result = baseDefaultMappingDefinitionToBytes("char"); result.setContent("return java.nio.ByteBuffer.allocate(2).putChar(input).array();"); return result; } - syn nta DefaultMappingDefinition Ros2Rag.defaultStringToBytesMapping() { + syn nta DefaultMappingDefinition RagConnect.defaultStringToBytesMapping() { DefaultMappingDefinition result = baseDefaultMappingDefinitionToBytes("String"); result.setContent("return input.getBytes();"); return result; @@ -166,18 +166,18 @@ aspect Mappings { getMappingList().get(0).getFromType().prettyPrint(); switch(typeName) { case "int": - case "Integer": return ros2rag().defaultBytesToIntMapping(); + case "Integer": return ragconnect().defaultBytesToIntMapping(); case "short": - case "Short": return ros2rag().defaultBytesToShortMapping(); + case "Short": return ragconnect().defaultBytesToShortMapping(); case "long": - case "Long": return ros2rag().defaultBytesToLongMapping(); + case "Long": return ragconnect().defaultBytesToLongMapping(); case "float": - case "Float": return ros2rag().defaultBytesToFloatMapping(); + case "Float": return ragconnect().defaultBytesToFloatMapping(); case "double": - case "Double": return ros2rag().defaultBytesToDoubleMapping(); + case "Double": return ragconnect().defaultBytesToDoubleMapping(); case "char": - case "Character": return ros2rag().defaultBytesToCharMapping(); - case "String": return ros2rag().defaultBytesToStringMapping(); + case "Character": return ragconnect().defaultBytesToCharMapping(); + case "String": return ragconnect().defaultBytesToStringMapping(); default: return null; } } @@ -187,18 +187,18 @@ aspect Mappings { getMappingList().get(getMappingList().size() - 1).getFromType().prettyPrint(); switch(typeName) { case "int": - case "Integer": return ros2rag().defaultIntToBytesMapping(); + case "Integer": return ragconnect().defaultIntToBytesMapping(); case "short": - case "Short": return ros2rag().defaultShortToBytesMapping(); + case "Short": return ragconnect().defaultShortToBytesMapping(); case "long": - case "Long": return ros2rag().defaultLongToBytesMapping(); + case "Long": return ragconnect().defaultLongToBytesMapping(); case "float": - case "Float": return ros2rag().defaultFloatToBytesMapping(); + case "Float": return ragconnect().defaultFloatToBytesMapping(); case "double": - case "Double": return ros2rag().defaultDoubleToBytesMapping(); + case "Double": return ragconnect().defaultDoubleToBytesMapping(); case "char": - case "Character": return ros2rag().defaultCharToBytesMapping(); - case "String": return ros2rag().defaultStringToBytesMapping(); + case "Character": return ragconnect().defaultCharToBytesMapping(); + case "String": return ragconnect().defaultStringToBytesMapping(); default: return null; } } @@ -208,7 +208,7 @@ aspect Mappings { eq JavaArrayMappingDefinitionType.isByteArray() = getType().getName().equals("byte"); // --- allMappingDefinitions --- - syn java.util.List<MappingDefinition> Ros2Rag.allMappingDefinitions() { + syn java.util.List<MappingDefinition> RagConnect.allMappingDefinitions() { java.util.List<MappingDefinition> result = new java.util.ArrayList<>(); getMappingDefinitionList().iterator().forEachRemaining(result::add); result.add(defaultBytesToIntMapping()); diff --git a/ragconnect.base/src/main/jastadd/parser/Preamble.parser b/ragconnect.base/src/main/jastadd/parser/Preamble.parser new file mode 100644 index 0000000..d701db1 --- /dev/null +++ b/ragconnect.base/src/main/jastadd/parser/Preamble.parser @@ -0,0 +1,7 @@ +%header {: +package org.jastadd.ragconnect.parser; +import org.jastadd.ragconnect.ast.*; +:}; + +%goal goal; +%goal ragconnect; diff --git a/ros2rag.base/src/main/jastadd/parser/Ros2Rag.parser b/ragconnect.base/src/main/jastadd/parser/RagConnect.parser similarity index 86% rename from ros2rag.base/src/main/jastadd/parser/Ros2Rag.parser rename to ragconnect.base/src/main/jastadd/parser/RagConnect.parser index 015b4e6..3fbf4b8 100644 --- a/ros2rag.base/src/main/jastadd/parser/Ros2Rag.parser +++ b/ragconnect.base/src/main/jastadd/parser/RagConnect.parser @@ -1,9 +1,9 @@ -Ros2Rag ros2rag - = update_definition.d ros2rag.r {: r.getUpdateDefinitionList().insertChild(d, 0); return r; :} - | dependency_definition.d ros2rag.r {: r.getDependencyDefinitionList().insertChild(d, 0); return r; :} - | mapping_definition.d ros2rag.r {: r.getMappingDefinitionList().insertChild(d, 0); return r; :} - | comment ros2rag.r {: return r; :} - | {: return new Ros2Rag(); :} +RagConnect ragconnect + = update_definition.d ragconnect.r {: r.getUpdateDefinitionList().insertChild(d, 0); return r; :} + | dependency_definition.d ragconnect.r {: r.getDependencyDefinitionList().insertChild(d, 0); return r; :} + | mapping_definition.d ragconnect.r {: r.getMappingDefinitionList().insertChild(d, 0); return r; :} + | comment ragconnect.r {: return r; :} + | {: return new RagConnect(); :} ; %embed {: diff --git a/ragconnect.base/src/main/jastadd/scanner/Header.flex b/ragconnect.base/src/main/jastadd/scanner/Header.flex new file mode 100644 index 0000000..53f20ea --- /dev/null +++ b/ragconnect.base/src/main/jastadd/scanner/Header.flex @@ -0,0 +1,17 @@ +package org.jastadd.ragconnect.scanner; + +import org.jastadd.ragconnect.parser.RagConnectParser.Terminals; +%% + +%public +%final +%class RagConnectScanner +%extends beaver.Scanner + +%type beaver.Symbol +%function nextToken +%yylexthrow beaver.Scanner.Exception +%scanerror RagConnectScanner.ScannerError + +%line +%column diff --git a/ros2rag.base/src/main/jastadd/scanner/Keywords.flex b/ragconnect.base/src/main/jastadd/scanner/Keywords.flex similarity index 100% rename from ros2rag.base/src/main/jastadd/scanner/Keywords.flex rename to ragconnect.base/src/main/jastadd/scanner/Keywords.flex diff --git a/ros2rag.base/src/main/jastadd/scanner/Macros.flex b/ragconnect.base/src/main/jastadd/scanner/Macros.flex similarity index 100% rename from ros2rag.base/src/main/jastadd/scanner/Macros.flex rename to ragconnect.base/src/main/jastadd/scanner/Macros.flex diff --git a/ros2rag.base/src/main/jastadd/scanner/MappingContent.flex b/ragconnect.base/src/main/jastadd/scanner/MappingContent.flex similarity index 100% rename from ros2rag.base/src/main/jastadd/scanner/MappingContent.flex rename to ragconnect.base/src/main/jastadd/scanner/MappingContent.flex diff --git a/ros2rag.base/src/main/java/org/jastadd/ros2rag/compiler/AppendableWriter.java b/ragconnect.base/src/main/java/org/jastadd/ragconnect/compiler/AppendableWriter.java similarity index 93% rename from ros2rag.base/src/main/java/org/jastadd/ros2rag/compiler/AppendableWriter.java rename to ragconnect.base/src/main/java/org/jastadd/ragconnect/compiler/AppendableWriter.java index 97680b1..55818dc 100644 --- a/ros2rag.base/src/main/java/org/jastadd/ros2rag/compiler/AppendableWriter.java +++ b/ragconnect.base/src/main/java/org/jastadd/ragconnect/compiler/AppendableWriter.java @@ -1,4 +1,4 @@ -package org.jastadd.ros2rag.compiler; +package org.jastadd.ragconnect.compiler; import java.io.IOException; import java.io.Writer; diff --git a/ros2rag.base/src/main/java/org/jastadd/ros2rag/compiler/Compiler.java b/ragconnect.base/src/main/java/org/jastadd/ragconnect/compiler/Compiler.java similarity index 76% rename from ros2rag.base/src/main/java/org/jastadd/ros2rag/compiler/Compiler.java rename to ragconnect.base/src/main/java/org/jastadd/ragconnect/compiler/Compiler.java index b633113..e23d4bd 100644 --- a/ros2rag.base/src/main/java/org/jastadd/ros2rag/compiler/Compiler.java +++ b/ragconnect.base/src/main/java/org/jastadd/ragconnect/compiler/Compiler.java @@ -1,14 +1,13 @@ -package org.jastadd.ros2rag.compiler; +package org.jastadd.ragconnect.compiler; import beaver.Parser; -import org.jastadd.ros2rag.ast.*; -import org.jastadd.ros2rag.compiler.options.CommandLine; -import org.jastadd.ros2rag.compiler.options.CommandLine.CommandLineException; -import org.jastadd.ros2rag.compiler.options.FlagOption; -import org.jastadd.ros2rag.compiler.options.Option; -import org.jastadd.ros2rag.compiler.options.StringOption; -import org.jastadd.ros2rag.parser.Ros2RagParser; -import org.jastadd.ros2rag.scanner.Ros2RagScanner; +import org.jastadd.ragconnect.compiler.options.CommandLine; +import org.jastadd.ragconnect.compiler.options.FlagOption; +import org.jastadd.ragconnect.compiler.options.Option; +import org.jastadd.ragconnect.compiler.options.StringOption; +import org.jastadd.ragconnect.ast.*; +import org.jastadd.ragconnect.parser.RagConnectParser; +import org.jastadd.ragconnect.scanner.RagConnectScanner; import java.io.*; import java.nio.file.Files; @@ -22,7 +21,7 @@ public class Compiler { private StringOption optionOutputDir; private StringOption optionInputGrammar; private StringOption optionRootNode; - private StringOption optionInputRos2Rag; + private StringOption optionInputRagConnect; private FlagOption optionHelp; private FlagOption optionVerbose; private FlagOption optionLogReads; @@ -36,7 +35,7 @@ public class Compiler { addOptions(); } - public void run(String[] args) throws CommandLineException, CompilerException { + public void run(String[] args) throws CommandLine.CommandLineException, CompilerException { System.setProperty("java.util.logging.manager", "org.apache.logging.log4j.jul.LogManager"); System.setProperty("mustache.debug", "true"); options = new ArrayList<>(); @@ -75,7 +74,7 @@ public class Compiler { throw new CompilerException("Error creating output dir " + outputDir, e); } - printMessage("Running Ros2Rag Preprocessor"); + printMessage("Running RagConnect Preprocessor"); if (anyRequiredOptionIsUnset()) { throw new CompilerException("Aborting due to missing values for required options."); @@ -85,11 +84,11 @@ public class Compiler { if (!otherArgs.isEmpty()) { printMessage("Superfluous arguments will be ignored: " + otherArgs); } - Ros2Rag ros2Rag = parseProgram(optionInputGrammar.getValue(), optionInputRos2Rag.getValue()); + RagConnect ragConnect = parseProgram(optionInputGrammar.getValue(), optionInputRagConnect.getValue()); - if (!ros2Rag.errors().isEmpty()) { + if (!ragConnect.errors().isEmpty()) { System.err.println("Errors:"); - for (ErrorMessage e : ros2Rag.errors()) { + for (ErrorMessage e : ragConnect.errors()) { System.err.println(e); } System.exit(1); @@ -109,8 +108,8 @@ public class Compiler { } catch (IOException e) { throw new CompilerException("Could not copy " + mqttHandlerFileName, e); } - writeToFile(outputDir + "/Grammar.relast", ros2Rag.getProgram().generateAbstractGrammar()); - writeToFile(outputDir + "/ROS2RAG.jadd", ros2Rag.generateAspect(optionRootNode.getValue())); + writeToFile(outputDir + "/Grammar.relast", ragConnect.getProgram().generateAbstractGrammar()); + writeToFile(outputDir + "/RagConnect.jadd", ragConnect.generateAspect(optionRootNode.getValue())); } private boolean anyRequiredOptionIsUnset() { @@ -129,7 +128,7 @@ public class Compiler { public static void main(String[] args) { try { new Compiler().run(args); - } catch (CommandLineException | CompilerException e) { + } catch (CommandLine.CommandLineException | CompilerException e) { System.err.println(e.getMessage()); System.exit(-1); } @@ -153,7 +152,7 @@ public class Compiler { optionOutputDir = addOption(new StringOption("outputDir", "target directory for the generated files.")); optionInputGrammar = addOption(new StringOption("inputGrammar", "base grammar.")); optionRootNode = addOption(new StringOption("rootNode", "root node in the base grammar.")); - optionInputRos2Rag = addOption(new StringOption("inputRos2Rag", "ros2rag definition file.")); + optionInputRagConnect = addOption(new StringOption("inputRagConnect", "connect definition file.")); optionHelp = addOption(new FlagOption("help", "Print usage and exit.")); optionVerbose = addOption(new FlagOption("verbose", "Print more messages while compiling.")); optionLogReads = addOption(new FlagOption("logReads", "Enable logging for every read.")); @@ -165,14 +164,14 @@ public class Compiler { return option; } - private Ros2Rag parseProgram(String inputGrammarFileName, String inputRos2RagFileName) throws CompilerException { + private RagConnect parseProgram(String inputGrammarFileName, String inputRagConnectFileName) throws CompilerException { Program program = new Program(); - Ros2Rag ros2Rag; + RagConnect ros2Rag; GrammarFile inputGrammar; try (BufferedReader reader = Files.newBufferedReader(Paths.get(inputGrammarFileName))) { - Ros2RagScanner scanner = new Ros2RagScanner(reader); - Ros2RagParser parser = new Ros2RagParser(); + RagConnectScanner scanner = new RagConnectScanner(reader); + RagConnectParser parser = new RagConnectParser(); inputGrammar = (GrammarFile) parser.parse(scanner); if (optionVerbose.isSet()) { inputGrammar.dumpTree(System.out); @@ -184,14 +183,14 @@ public class Compiler { throw new CompilerException("Could not parse grammar file " + inputGrammarFileName, e); } - try (BufferedReader reader = Files.newBufferedReader(Paths.get(inputRos2RagFileName))) { - Ros2RagScanner scanner = new Ros2RagScanner(reader); - Ros2RagParser parser = new Ros2RagParser(); - ros2Rag = (Ros2Rag) parser.parse(scanner, Ros2RagParser.AltGoals.ros2rag); + try (BufferedReader reader = Files.newBufferedReader(Paths.get(inputRagConnectFileName))) { + RagConnectScanner scanner = new RagConnectScanner(reader); + RagConnectParser parser = new RagConnectParser(); + ros2Rag = (RagConnect) parser.parse(scanner, RagConnectParser.AltGoals.ragconnect); ros2Rag.setProgram(program); - ros2Rag.setFileName(inputRos2RagFileName); + ros2Rag.setFileName(inputRagConnectFileName); } catch (IOException | Parser.Exception e) { - throw new CompilerException("Could not parse ros2rag file " + inputRos2RagFileName, e); + throw new CompilerException("Could not parse ros2rag file " + inputRagConnectFileName, e); } ros2Rag.treeResolveAll(); ros2Rag.additionalRelations().forEach(inputGrammar::addDeclaration); diff --git a/ros2rag.base/src/main/java/org/jastadd/ros2rag/compiler/SimpleMain.java b/ragconnect.base/src/main/java/org/jastadd/ragconnect/compiler/SimpleMain.java similarity index 81% rename from ros2rag.base/src/main/java/org/jastadd/ros2rag/compiler/SimpleMain.java rename to ragconnect.base/src/main/java/org/jastadd/ragconnect/compiler/SimpleMain.java index 74406f8..2e7d5c9 100644 --- a/ros2rag.base/src/main/java/org/jastadd/ros2rag/compiler/SimpleMain.java +++ b/ragconnect.base/src/main/java/org/jastadd/ragconnect/compiler/SimpleMain.java @@ -1,9 +1,9 @@ -package org.jastadd.ros2rag.compiler; +package org.jastadd.ragconnect.compiler; import beaver.Parser; -import org.jastadd.ros2rag.ast.*; -import org.jastadd.ros2rag.parser.Ros2RagParser; -import org.jastadd.ros2rag.scanner.Ros2RagScanner; +import org.jastadd.ragconnect.ast.*; +import org.jastadd.ragconnect.parser.RagConnectParser; +import org.jastadd.ragconnect.scanner.RagConnectScanner; import java.io.BufferedReader; import java.io.IOException; @@ -102,18 +102,18 @@ public class SimpleMain { } public static void main(String[] args) { - testing(); -// createManualAST(); +// testing(); + createManualAST(); } private static void createManualAST() { - Ros2Rag model = new Ros2Rag(); - Program program = parseProgram(Paths.get("src", "test", "resources", "Example.relast")); + RagConnect model = new RagConnect(); + Program program = parseProgram(Paths.get("ros2rag.starter","src", "main", "jastadd", "RobotModel.relast")); model.setProgram(program); MappingDefinition mappingDefinition = new MappingDefinition(); mappingDefinition.setID("PoseToPosition"); - mappingDefinition.setFromType(makeMappingDefinitionType("PBPose")); + mappingDefinition.setFromType(makeMappingDefinitionType("int")); mappingDefinition.setFromVariableName("x"); mappingDefinition.setToType(makeMappingDefinitionType("Position")); mappingDefinition.setContent(" pose.position.x += sqrt(.5 * size.x)\n" + @@ -125,11 +125,14 @@ public class SimpleMain { ReadFromMqttDefinition readFromMqttDefinition = new ReadFromMqttDefinition(); readFromMqttDefinition.setAlwaysApply(false); - readFromMqttDefinition.setToken(TokenComponent.createRef("Joint.CurrentPosition")); + readFromMqttDefinition.setToken(TokenComponent.createRef("Link.CurrentPosition")); readFromMqttDefinition.addMapping(mappingDefinition); model.addUpdateDefinition(readFromMqttDefinition); model.treeResolveAll(); + for (ErrorMessage error : model.errors()) { + System.err.println(error); + } System.out.println(model.generateAspect("Model")); } @@ -142,9 +145,12 @@ public class SimpleMain { private static Program parseProgram(Path path) { try (BufferedReader reader = Files.newBufferedReader(path)) { - Ros2RagScanner scanner = new Ros2RagScanner(reader); - Ros2RagParser parser = new Ros2RagParser(); - return (Program) parser.parse(scanner); + RagConnectScanner scanner = new RagConnectScanner(reader); + RagConnectParser parser = new RagConnectParser(); + GrammarFile grammarFile = (GrammarFile) parser.parse(scanner); + Program program = new Program(); + program.addGrammarFile(grammarFile); + return program; } catch (IOException | Parser.Exception e) { e.printStackTrace(); } diff --git a/ros2rag.base/src/main/java/org/jastadd/ros2rag/compiler/Utils.java b/ragconnect.base/src/main/java/org/jastadd/ragconnect/compiler/Utils.java similarity index 90% rename from ros2rag.base/src/main/java/org/jastadd/ros2rag/compiler/Utils.java rename to ragconnect.base/src/main/java/org/jastadd/ragconnect/compiler/Utils.java index 6a229cd..c083fe1 100644 --- a/ros2rag.base/src/main/java/org/jastadd/ros2rag/compiler/Utils.java +++ b/ragconnect.base/src/main/java/org/jastadd/ragconnect/compiler/Utils.java @@ -1,4 +1,4 @@ -package org.jastadd.ros2rag.compiler; +package org.jastadd.ragconnect.compiler; import java.util.*; import java.util.function.Predicate; diff --git a/ros2rag.base/src/main/java/org/jastadd/ros2rag/compiler/options/CommandLine.java b/ragconnect.base/src/main/java/org/jastadd/ragconnect/compiler/options/CommandLine.java similarity index 98% rename from ros2rag.base/src/main/java/org/jastadd/ros2rag/compiler/options/CommandLine.java rename to ragconnect.base/src/main/java/org/jastadd/ragconnect/compiler/options/CommandLine.java index 89a1335..dc29ba0 100644 --- a/ros2rag.base/src/main/java/org/jastadd/ros2rag/compiler/options/CommandLine.java +++ b/ragconnect.base/src/main/java/org/jastadd/ragconnect/compiler/options/CommandLine.java @@ -1,4 +1,4 @@ -package org.jastadd.ros2rag.compiler.options; +package org.jastadd.ragconnect.compiler.options; import java.util.*; diff --git a/ros2rag.base/src/main/java/org/jastadd/ros2rag/compiler/options/EnumOption.java b/ragconnect.base/src/main/java/org/jastadd/ragconnect/compiler/options/EnumOption.java similarity index 97% rename from ros2rag.base/src/main/java/org/jastadd/ros2rag/compiler/options/EnumOption.java rename to ragconnect.base/src/main/java/org/jastadd/ragconnect/compiler/options/EnumOption.java index 67ada98..a5278d3 100644 --- a/ros2rag.base/src/main/java/org/jastadd/ros2rag/compiler/options/EnumOption.java +++ b/ragconnect.base/src/main/java/org/jastadd/ragconnect/compiler/options/EnumOption.java @@ -1,4 +1,4 @@ -package org.jastadd.ros2rag.compiler.options; +package org.jastadd.ragconnect.compiler.options; import java.util.Collection; import java.util.TreeSet; diff --git a/ros2rag.base/src/main/java/org/jastadd/ros2rag/compiler/options/FlagOption.java b/ragconnect.base/src/main/java/org/jastadd/ragconnect/compiler/options/FlagOption.java similarity index 91% rename from ros2rag.base/src/main/java/org/jastadd/ros2rag/compiler/options/FlagOption.java rename to ragconnect.base/src/main/java/org/jastadd/ragconnect/compiler/options/FlagOption.java index ad87ed1..c16e20d 100644 --- a/ros2rag.base/src/main/java/org/jastadd/ros2rag/compiler/options/FlagOption.java +++ b/ragconnect.base/src/main/java/org/jastadd/ragconnect/compiler/options/FlagOption.java @@ -1,4 +1,4 @@ -package org.jastadd.ros2rag.compiler.options; +package org.jastadd.ragconnect.compiler.options; public class FlagOption extends Option<Boolean> { private boolean value; diff --git a/ros2rag.base/src/main/java/org/jastadd/ros2rag/compiler/options/Option.java b/ragconnect.base/src/main/java/org/jastadd/ragconnect/compiler/options/Option.java similarity index 96% rename from ros2rag.base/src/main/java/org/jastadd/ros2rag/compiler/options/Option.java rename to ragconnect.base/src/main/java/org/jastadd/ragconnect/compiler/options/Option.java index 0f57f98..cc1469c 100644 --- a/ros2rag.base/src/main/java/org/jastadd/ros2rag/compiler/options/Option.java +++ b/ragconnect.base/src/main/java/org/jastadd/ragconnect/compiler/options/Option.java @@ -1,4 +1,4 @@ -package org.jastadd.ros2rag.compiler.options; +package org.jastadd.ragconnect.compiler.options; abstract public class Option<ValueType> implements Comparable<Option<?>> { public final static String PREFIX = "--"; diff --git a/ros2rag.base/src/main/java/org/jastadd/ros2rag/compiler/options/StringOption.java b/ragconnect.base/src/main/java/org/jastadd/ragconnect/compiler/options/StringOption.java similarity index 93% rename from ros2rag.base/src/main/java/org/jastadd/ros2rag/compiler/options/StringOption.java rename to ragconnect.base/src/main/java/org/jastadd/ragconnect/compiler/options/StringOption.java index 19082b5..51ee57a 100644 --- a/ros2rag.base/src/main/java/org/jastadd/ros2rag/compiler/options/StringOption.java +++ b/ragconnect.base/src/main/java/org/jastadd/ragconnect/compiler/options/StringOption.java @@ -1,4 +1,4 @@ -package org.jastadd.ros2rag.compiler.options; +package org.jastadd.ragconnect.compiler.options; public class StringOption extends Option<String> { private String value; diff --git a/ros2rag.base/src/main/resources/MqttHandler.jadd b/ragconnect.base/src/main/resources/MqttHandler.jadd similarity index 99% rename from ros2rag.base/src/main/resources/MqttHandler.jadd rename to ragconnect.base/src/main/resources/MqttHandler.jadd index c3e98dc..493d8e4 100644 --- a/ros2rag.base/src/main/resources/MqttHandler.jadd +++ b/ragconnect.base/src/main/resources/MqttHandler.jadd @@ -24,7 +24,7 @@ public class MqttHandler { private final java.util.Map<String, java.util.List<java.util.function.Consumer<byte[]>>> callbacks; public MqttHandler() { - this("Ros2Rag"); + this("RagConnect"); } public MqttHandler(String name) { diff --git a/ros2rag.base/src/main/resources/dependencyDefinition.mustache b/ragconnect.base/src/main/resources/dependencyDefinition.mustache similarity index 100% rename from ros2rag.base/src/main/resources/dependencyDefinition.mustache rename to ragconnect.base/src/main/resources/dependencyDefinition.mustache diff --git a/ros2rag.base/src/main/resources/log4j2.xml b/ragconnect.base/src/main/resources/log4j2.xml similarity index 100% rename from ros2rag.base/src/main/resources/log4j2.xml rename to ragconnect.base/src/main/resources/log4j2.xml diff --git a/ros2rag.base/src/main/resources/mappingApplication.mustache b/ragconnect.base/src/main/resources/mappingApplication.mustache similarity index 100% rename from ros2rag.base/src/main/resources/mappingApplication.mustache rename to ragconnect.base/src/main/resources/mappingApplication.mustache diff --git a/ros2rag.base/src/main/resources/mappingDefinition.mustache b/ragconnect.base/src/main/resources/mappingDefinition.mustache similarity index 100% rename from ros2rag.base/src/main/resources/mappingDefinition.mustache rename to ragconnect.base/src/main/resources/mappingDefinition.mustache diff --git a/ros2rag.base/src/main/resources/mqtt.mustache b/ragconnect.base/src/main/resources/mqtt.mustache similarity index 92% rename from ros2rag.base/src/main/resources/mqtt.mustache rename to ragconnect.base/src/main/resources/mqtt.mustache index d65ca94..dbdb85e 100644 --- a/ros2rag.base/src/main/resources/mqtt.mustache +++ b/ragconnect.base/src/main/resources/mqtt.mustache @@ -16,8 +16,8 @@ aspect MQTT { {{mqttHandlerField}}.close(); } - inh MqttHandler ASTNode.{{mqttHandlerAttribute}}(); {{#getRootTypeComponents}} + {{#first}}inh MqttHandler ASTNode.{{mqttHandlerAttribute}}();{{/first}} eq {{rootNodeName}}.get{{name}}().{{mqttHandlerAttribute}}() = {{mqttHandlerField}}; {{/getRootTypeComponents}} } diff --git a/ros2rag.base/src/main/resources/ros2rag.mustache b/ragconnect.base/src/main/resources/ragconnect.mustache similarity index 100% rename from ros2rag.base/src/main/resources/ros2rag.mustache rename to ragconnect.base/src/main/resources/ragconnect.mustache diff --git a/ros2rag.base/src/main/resources/readDefinition.mustache b/ragconnect.base/src/main/resources/readDefinition.mustache similarity index 100% rename from ros2rag.base/src/main/resources/readDefinition.mustache rename to ragconnect.base/src/main/resources/readDefinition.mustache diff --git a/ros2rag.base/src/main/resources/tokenComponent.mustache b/ragconnect.base/src/main/resources/tokenComponent.mustache similarity index 100% rename from ros2rag.base/src/main/resources/tokenComponent.mustache rename to ragconnect.base/src/main/resources/tokenComponent.mustache diff --git a/ros2rag.base/src/main/resources/writeDefinition.mustache b/ragconnect.base/src/main/resources/writeDefinition.mustache similarity index 100% rename from ros2rag.base/src/main/resources/writeDefinition.mustache rename to ragconnect.base/src/main/resources/writeDefinition.mustache diff --git a/ros2rag.starter/.gitignore b/ragconnect.tests/.gitignore similarity index 100% rename from ros2rag.starter/.gitignore rename to ragconnect.tests/.gitignore diff --git a/ros2rag.tests/README.md b/ragconnect.tests/README.md similarity index 100% rename from ros2rag.tests/README.md rename to ragconnect.tests/README.md diff --git a/ros2rag.tests/build.gradle b/ragconnect.tests/build.gradle similarity index 55% rename from ros2rag.tests/build.gradle rename to ragconnect.tests/build.gradle index efff9a5..ab534e4 100644 --- a/ros2rag.tests/build.gradle +++ b/ragconnect.tests/build.gradle @@ -1,6 +1,7 @@ import org.jastadd.relast.plugin.RelastPlugin import org.jastadd.relast.plugin.RelastTest apply plugin: 'jastadd' +apply plugin: 'com.google.protobuf' apply plugin: RelastPlugin sourceCompatibility = 1.8 @@ -13,12 +14,12 @@ buildscript { repositories.jcenter() dependencies { classpath 'org.jastadd:jastaddgradle:1.13.3' + classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.12' } } dependencies { - implementation project(':ros2rag.base') - implementation project(':ros2rag.common') + implementation project(':ragconnect.base') runtime group: 'org.jastadd', name: 'jastadd', version: '2.3.4' testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: '5.4.0' @@ -26,6 +27,7 @@ dependencies { testImplementation group: 'org.assertj', name: 'assertj-core', version: '3.12.1' testImplementation group: 'org.fusesource.mqtt-client', name: 'mqtt-client', version: '1.15' testImplementation group: 'net.sf.beaver', name: 'beaver-rt', version: '0.9.11' + api group: 'com.google.protobuf', name: 'protobuf-java', version: '3.0.0' } test { @@ -36,6 +38,13 @@ test { maxHeapSize = '1G' } +protobuf { + protoc { + // The artifact spec for the Protobuf Compiler + artifact = 'com.google.protobuf:protoc:3.0.0' + } +} + task allTests(type: Test, dependsOn: testClasses) { description = 'Run every test' group = 'verification' @@ -58,16 +67,16 @@ sourceSets { // --- Test: Example --- task preprocessExampleTest(type: JavaExec, group: 'verification') { doFirst { - delete 'src/test/02-after-ros2rag/example/Grammar.relast', - 'src/test/02-after-ros2rag/example/MqttHandler.java', - 'src/test/02-after-ros2rag/example/ROS2RAG.jadd' + delete 'src/test/02-after-ragconnect/example/Grammar.relast', + 'src/test/02-after-ragconnect/example/MqttHandler.java', + 'src/test/02-after-ragconnect/example/RagConnect.jadd' } classpath = sourceSets.main.runtimeClasspath - main = 'org.jastadd.ros2rag.compiler.Compiler' - args '--outputDir=src/test/02-after-ros2rag/example', + main = 'org.jastadd.ragconnect.compiler.Compiler' + args '--outputDir=src/test/02-after-ragconnect/example', '--inputGrammar=src/test/01-input/example/Test.relast', - '--inputRos2Rag=src/test/01-input/example/Test.ros2rag', + '--inputRagConnect=src/test/01-input/example/Test.ragconnect', '--rootNode=Model', '--logReads', '--logWrites' } @@ -75,12 +84,12 @@ task preprocessExampleTest(type: JavaExec, group: 'verification') { task compileExampleTest(type: RelastTest) { useJastAddNames = true jastAddList = 'JastAddList' - relastFiles 'src/test/02-after-ros2rag/example/Grammar.relast' + relastFiles 'src/test/02-after-ragconnect/example/Grammar.relast' grammarName = 'src/test/03-after-relast/example/example' packageName = 'example.ast' moreInputFiles 'src/test/01-input/example/Test.jadd', - 'src/test/02-after-ros2rag/example/MqttHandler.jadd', - 'src/test/02-after-ros2rag/example/ROS2RAG.jadd' + 'src/test/02-after-ragconnect/example/MqttHandler.jadd', + 'src/test/02-after-ragconnect/example/RagConnect.jadd' } testClasses.dependsOn compileExampleTest @@ -89,16 +98,16 @@ compileExampleTest.dependsOn preprocessExampleTest // --- Test: default-only-read --- task preprocessDefaultOnlyReadTest(type: JavaExec, group: 'verification') { doFirst { - delete 'src/test/02-after-ros2rag/defaultOnlyRead/Grammar.relast', - 'src/test/02-after-ros2rag/defaultOnlyRead/MqttHandler.java', - 'src/test/02-after-ros2rag/defaultOnlyRead/ROS2RAG.jadd' + delete 'src/test/02-after-ragconnect/defaultOnlyRead/Grammar.relast', + 'src/test/02-after-ragconnect/defaultOnlyRead/MqttHandler.java', + 'src/test/02-after-ragconnect/defaultOnlyRead/RagConnect.jadd' } classpath = sourceSets.main.runtimeClasspath - main = 'org.jastadd.ros2rag.compiler.Compiler' - args '--outputDir=src/test/02-after-ros2rag/defaultOnlyRead', + main = 'org.jastadd.ragconnect.compiler.Compiler' + args '--outputDir=src/test/02-after-ragconnect/defaultOnlyRead', '--inputGrammar=src/test/01-input/defaultOnlyRead/Test.relast', - '--inputRos2Rag=src/test/01-input/defaultOnlyRead/Test.ros2rag', + '--inputRagConnect=src/test/01-input/defaultOnlyRead/Test.ragconnect', '--rootNode=A', '--verbose' } @@ -106,11 +115,11 @@ task preprocessDefaultOnlyReadTest(type: JavaExec, group: 'verification') { task compileDefaultOnlyReadTest(type: RelastTest) { useJastAddNames = true jastAddList = 'JastAddList' - relastFiles 'src/test/02-after-ros2rag/defaultOnlyRead/Grammar.relast' + relastFiles 'src/test/02-after-ragconnect/defaultOnlyRead/Grammar.relast' grammarName = 'src/test/03-after-relast/defaultOnlyRead/defaultOnlyRead' packageName = 'defaultOnlyRead.ast' - moreInputFiles 'src/test/02-after-ros2rag/defaultOnlyRead/MqttHandler.jadd', - 'src/test/02-after-ros2rag/defaultOnlyRead/ROS2RAG.jadd' + moreInputFiles 'src/test/02-after-ragconnect/defaultOnlyRead/MqttHandler.jadd', + 'src/test/02-after-ragconnect/defaultOnlyRead/RagConnect.jadd' } testClasses.dependsOn compileDefaultOnlyReadTest @@ -119,16 +128,16 @@ compileDefaultOnlyReadTest.dependsOn preprocessDefaultOnlyReadTest // --- Test: default-only-write --- task preprocessDefaultOnlyWriteTest(type: JavaExec, group: 'verification') { doFirst { - delete 'src/test/02-after-ros2rag/defaultOnlyWrite/Grammar.relast', - 'src/test/02-after-ros2rag/defaultOnlyWrite/MqttHandler.java', - 'src/test/02-after-ros2rag/defaultOnlyWrite/ROS2RAG.jadd' + delete 'src/test/02-after-ragconnect/defaultOnlyWrite/Grammar.relast', + 'src/test/02-after-ragconnect/defaultOnlyWrite/MqttHandler.java', + 'src/test/02-after-ragconnect/defaultOnlyWrite/RagConnect.jadd' } classpath = sourceSets.main.runtimeClasspath - main = 'org.jastadd.ros2rag.compiler.Compiler' - args '--outputDir=src/test/02-after-ros2rag/defaultOnlyWrite', + main = 'org.jastadd.ragconnect.compiler.Compiler' + args '--outputDir=src/test/02-after-ragconnect/defaultOnlyWrite', '--inputGrammar=src/test/01-input/defaultOnlyWrite/Test.relast', - '--inputRos2Rag=src/test/01-input/defaultOnlyWrite/Test.ros2rag', + '--inputRagConnect=src/test/01-input/defaultOnlyWrite/Test.ragconnect', '--rootNode=A', '--verbose' } @@ -136,12 +145,12 @@ task preprocessDefaultOnlyWriteTest(type: JavaExec, group: 'verification') { task compileDefaultOnlyWriteTest(type: RelastTest) { useJastAddNames = true jastAddList = 'JastAddList' - relastFiles 'src/test/02-after-ros2rag/defaultOnlyWrite/Grammar.relast' + relastFiles 'src/test/02-after-ragconnect/defaultOnlyWrite/Grammar.relast' grammarName = 'src/test/03-after-relast/defaultOnlyWrite/defaultOnlyWrite' packageName = 'defaultOnlyWrite.ast' moreInputFiles 'src/test/01-input/defaultOnlyWrite/Test.jadd', - 'src/test/02-after-ros2rag/defaultOnlyWrite/MqttHandler.jadd', - 'src/test/02-after-ros2rag/defaultOnlyWrite/ROS2RAG.jadd' + 'src/test/02-after-ragconnect/defaultOnlyWrite/MqttHandler.jadd', + 'src/test/02-after-ragconnect/defaultOnlyWrite/RagConnect.jadd' } testClasses.dependsOn compileDefaultOnlyWriteTest @@ -150,16 +159,16 @@ compileDefaultOnlyWriteTest.dependsOn preprocessDefaultOnlyWriteTest // --- Test: read1write2 --- task preprocessRead1Write2Test(type: JavaExec, group: 'verification') { doFirst { - delete 'src/test/02-after-ros2rag/read1write2/Grammar.relast', - 'src/test/02-after-ros2rag/read1write2/MqttHandler.java', - 'src/test/02-after-ros2rag/read1write2/ROS2RAG.jadd' + delete 'src/test/02-after-ragconnect/read1write2/Grammar.relast', + 'src/test/02-after-ragconnect/read1write2/MqttHandler.java', + 'src/test/02-after-ragconnect/read1write2/RagConnect.jadd' } classpath = sourceSets.main.runtimeClasspath - main = 'org.jastadd.ros2rag.compiler.Compiler' - args '--outputDir=src/test/02-after-ros2rag/read1write2', + main = 'org.jastadd.ragconnect.compiler.Compiler' + args '--outputDir=src/test/02-after-ragconnect/read1write2', '--inputGrammar=src/test/01-input/read1write2/Test.relast', - '--inputRos2Rag=src/test/01-input/read1write2/Test.ros2rag', + '--inputRagConnect=src/test/01-input/read1write2/Test.ragconnect', '--rootNode=A', '--logReads', '--logWrites' } @@ -167,12 +176,12 @@ task preprocessRead1Write2Test(type: JavaExec, group: 'verification') { task compileRead1Write2Test(type: RelastTest) { useJastAddNames = true jastAddList = 'JastAddList' - relastFiles 'src/test/02-after-ros2rag/read1write2/Grammar.relast' + relastFiles 'src/test/02-after-ragconnect/read1write2/Grammar.relast' grammarName = 'src/test/03-after-relast/read1write2/read1write2' packageName = 'read1write2.ast' moreInputFiles 'src/test/01-input/read1write2/Test.jadd', - 'src/test/02-after-ros2rag/read1write2/MqttHandler.jadd', - 'src/test/02-after-ros2rag/read1write2/ROS2RAG.jadd' + 'src/test/02-after-ragconnect/read1write2/MqttHandler.jadd', + 'src/test/02-after-ragconnect/read1write2/RagConnect.jadd' } testClasses.dependsOn compileRead1Write2Test @@ -181,16 +190,16 @@ compileRead1Write2Test.dependsOn preprocessRead1Write2Test // --- Test: read2write1 --- task preprocessRead2Write1Test(type: JavaExec, group: 'verification') { doFirst { - delete 'src/test/02-after-ros2rag/read2write1/Grammar.relast', - 'src/test/02-after-ros2rag/read2write1/MqttHandler.java', - 'src/test/02-after-ros2rag/read2write1/ROS2RAG.jadd' + delete 'src/test/02-after-ragconnect/read2write1/Grammar.relast', + 'src/test/02-after-ragconnect/read2write1/MqttHandler.java', + 'src/test/02-after-ragconnect/read2write1/RagConnect.jadd' } classpath = sourceSets.main.runtimeClasspath - main = 'org.jastadd.ros2rag.compiler.Compiler' - args '--outputDir=src/test/02-after-ros2rag/read2write1', + main = 'org.jastadd.ragconnect.compiler.Compiler' + args '--outputDir=src/test/02-after-ragconnect/read2write1', '--inputGrammar=src/test/01-input/read2write1/Test.relast', - '--inputRos2Rag=src/test/01-input/read2write1/Test.ros2rag', + '--inputRagConnect=src/test/01-input/read2write1/Test.ragconnect', '--rootNode=A', '--verbose', '--logReads', '--logWrites' } @@ -198,17 +207,17 @@ task preprocessRead2Write1Test(type: JavaExec, group: 'verification') { task compileRead2Write1Test(type: RelastTest) { useJastAddNames = true jastAddList = 'JastAddList' - relastFiles 'src/test/02-after-ros2rag/read2write1/Grammar.relast' + relastFiles 'src/test/02-after-ragconnect/read2write1/Grammar.relast' grammarName = 'src/test/03-after-relast/read2write1/read2write1' packageName = 'read2write1.ast' moreInputFiles 'src/test/01-input/read2write1/Test.jadd', - 'src/test/02-after-ros2rag/read2write1/MqttHandler.jadd', - 'src/test/02-after-ros2rag/read2write1/ROS2RAG.jadd' + 'src/test/02-after-ragconnect/read2write1/MqttHandler.jadd', + 'src/test/02-after-ragconnect/read2write1/RagConnect.jadd' } testClasses.dependsOn compileRead2Write1Test compileRead2Write1Test.dependsOn preprocessRead2Write1Test clean { - delete 'src/test/02-after-ros2rag/*/', 'src/test/03-after-relast/*/', 'src/test/java-gen/*/' + delete 'src/test/02-after-ragconnect/*/', 'src/test/03-after-relast/*/', 'src/test/java-gen/*/' } diff --git a/ros2rag.tests/src/test/01-input/defaultOnlyRead/README.md b/ragconnect.tests/src/test/01-input/defaultOnlyRead/README.md similarity index 100% rename from ros2rag.tests/src/test/01-input/defaultOnlyRead/README.md rename to ragconnect.tests/src/test/01-input/defaultOnlyRead/README.md diff --git a/ros2rag.tests/src/test/01-input/defaultOnlyRead/Test.ros2rag b/ragconnect.tests/src/test/01-input/defaultOnlyRead/Test.ragconnect similarity index 100% rename from ros2rag.tests/src/test/01-input/defaultOnlyRead/Test.ros2rag rename to ragconnect.tests/src/test/01-input/defaultOnlyRead/Test.ragconnect diff --git a/ros2rag.tests/src/test/01-input/defaultOnlyRead/Test.relast b/ragconnect.tests/src/test/01-input/defaultOnlyRead/Test.relast similarity index 100% rename from ros2rag.tests/src/test/01-input/defaultOnlyRead/Test.relast rename to ragconnect.tests/src/test/01-input/defaultOnlyRead/Test.relast diff --git a/ros2rag.tests/src/test/01-input/defaultOnlyWrite/README.md b/ragconnect.tests/src/test/01-input/defaultOnlyWrite/README.md similarity index 100% rename from ros2rag.tests/src/test/01-input/defaultOnlyWrite/README.md rename to ragconnect.tests/src/test/01-input/defaultOnlyWrite/README.md diff --git a/ros2rag.tests/src/test/01-input/defaultOnlyWrite/Test.jadd b/ragconnect.tests/src/test/01-input/defaultOnlyWrite/Test.jadd similarity index 100% rename from ros2rag.tests/src/test/01-input/defaultOnlyWrite/Test.jadd rename to ragconnect.tests/src/test/01-input/defaultOnlyWrite/Test.jadd diff --git a/ros2rag.tests/src/test/01-input/defaultOnlyWrite/Test.ros2rag b/ragconnect.tests/src/test/01-input/defaultOnlyWrite/Test.ragconnect similarity index 100% rename from ros2rag.tests/src/test/01-input/defaultOnlyWrite/Test.ros2rag rename to ragconnect.tests/src/test/01-input/defaultOnlyWrite/Test.ragconnect diff --git a/ros2rag.tests/src/test/01-input/defaultOnlyWrite/Test.relast b/ragconnect.tests/src/test/01-input/defaultOnlyWrite/Test.relast similarity index 100% rename from ros2rag.tests/src/test/01-input/defaultOnlyWrite/Test.relast rename to ragconnect.tests/src/test/01-input/defaultOnlyWrite/Test.relast diff --git a/ros2rag.tests/src/test/01-input/errors/Errors.expected b/ragconnect.tests/src/test/01-input/errors/Errors.expected similarity index 100% rename from ros2rag.tests/src/test/01-input/errors/Errors.expected rename to ragconnect.tests/src/test/01-input/errors/Errors.expected diff --git a/ros2rag.tests/src/test/01-input/errors/Errors.ros2rag b/ragconnect.tests/src/test/01-input/errors/Errors.ragconnect similarity index 100% rename from ros2rag.tests/src/test/01-input/errors/Errors.ros2rag rename to ragconnect.tests/src/test/01-input/errors/Errors.ragconnect diff --git a/ros2rag.tests/src/test/01-input/errors/Errors.relast b/ragconnect.tests/src/test/01-input/errors/Errors.relast similarity index 100% rename from ros2rag.tests/src/test/01-input/errors/Errors.relast rename to ragconnect.tests/src/test/01-input/errors/Errors.relast diff --git a/ros2rag.tests/src/test/01-input/errors/README.md b/ragconnect.tests/src/test/01-input/errors/README.md similarity index 100% rename from ros2rag.tests/src/test/01-input/errors/README.md rename to ragconnect.tests/src/test/01-input/errors/README.md diff --git a/ros2rag.tests/src/test/01-input/example/README.md b/ragconnect.tests/src/test/01-input/example/README.md similarity index 100% rename from ros2rag.tests/src/test/01-input/example/README.md rename to ragconnect.tests/src/test/01-input/example/README.md diff --git a/ros2rag.tests/src/test/01-input/example/Test.jadd b/ragconnect.tests/src/test/01-input/example/Test.jadd similarity index 100% rename from ros2rag.tests/src/test/01-input/example/Test.jadd rename to ragconnect.tests/src/test/01-input/example/Test.jadd diff --git a/ros2rag.tests/src/test/01-input/example/Test.ros2rag b/ragconnect.tests/src/test/01-input/example/Test.ragconnect similarity index 100% rename from ros2rag.tests/src/test/01-input/example/Test.ros2rag rename to ragconnect.tests/src/test/01-input/example/Test.ragconnect diff --git a/ros2rag.tests/src/test/01-input/example/Test.relast b/ragconnect.tests/src/test/01-input/example/Test.relast similarity index 100% rename from ros2rag.tests/src/test/01-input/example/Test.relast rename to ragconnect.tests/src/test/01-input/example/Test.relast diff --git a/ros2rag.tests/src/test/01-input/read1write2/README.md b/ragconnect.tests/src/test/01-input/read1write2/README.md similarity index 100% rename from ros2rag.tests/src/test/01-input/read1write2/README.md rename to ragconnect.tests/src/test/01-input/read1write2/README.md diff --git a/ros2rag.tests/src/test/01-input/read1write2/Test.jadd b/ragconnect.tests/src/test/01-input/read1write2/Test.jadd similarity index 100% rename from ros2rag.tests/src/test/01-input/read1write2/Test.jadd rename to ragconnect.tests/src/test/01-input/read1write2/Test.jadd diff --git a/ros2rag.tests/src/test/01-input/read1write2/Test.ros2rag b/ragconnect.tests/src/test/01-input/read1write2/Test.ragconnect similarity index 100% rename from ros2rag.tests/src/test/01-input/read1write2/Test.ros2rag rename to ragconnect.tests/src/test/01-input/read1write2/Test.ragconnect diff --git a/ros2rag.tests/src/test/01-input/read1write2/Test.relast b/ragconnect.tests/src/test/01-input/read1write2/Test.relast similarity index 100% rename from ros2rag.tests/src/test/01-input/read1write2/Test.relast rename to ragconnect.tests/src/test/01-input/read1write2/Test.relast diff --git a/ros2rag.tests/src/test/01-input/read2write1/Test.jadd b/ragconnect.tests/src/test/01-input/read2write1/Test.jadd similarity index 100% rename from ros2rag.tests/src/test/01-input/read2write1/Test.jadd rename to ragconnect.tests/src/test/01-input/read2write1/Test.jadd diff --git a/ros2rag.tests/src/test/01-input/read2write1/Test.ros2rag b/ragconnect.tests/src/test/01-input/read2write1/Test.ragconnect similarity index 100% rename from ros2rag.tests/src/test/01-input/read2write1/Test.ros2rag rename to ragconnect.tests/src/test/01-input/read2write1/Test.ragconnect diff --git a/ros2rag.tests/src/test/01-input/read2write1/Test.relast b/ragconnect.tests/src/test/01-input/read2write1/Test.relast similarity index 100% rename from ros2rag.tests/src/test/01-input/read2write1/Test.relast rename to ragconnect.tests/src/test/01-input/read2write1/Test.relast diff --git a/ros2rag.tests/src/test/02-after-ros2rag/.gitignore b/ragconnect.tests/src/test/03-after-relast/.gitignore similarity index 100% rename from ros2rag.tests/src/test/02-after-ros2rag/.gitignore rename to ragconnect.tests/src/test/03-after-relast/.gitignore diff --git a/ros2rag.tests/src/test/03-after-relast/.gitignore b/ragconnect.tests/src/test/java-gen/.gitignore similarity index 100% rename from ros2rag.tests/src/test/03-after-relast/.gitignore rename to ragconnect.tests/src/test/java-gen/.gitignore diff --git a/ros2rag.tests/src/test/java/org/jastadd/ros2rag/tests/AbstractMqttTest.java b/ragconnect.tests/src/test/java/org/jastadd/ros2rag/tests/AbstractMqttTest.java similarity index 100% rename from ros2rag.tests/src/test/java/org/jastadd/ros2rag/tests/AbstractMqttTest.java rename to ragconnect.tests/src/test/java/org/jastadd/ros2rag/tests/AbstractMqttTest.java diff --git a/ros2rag.tests/src/test/java/org/jastadd/ros2rag/tests/DefaultOnlyReadTest.java b/ragconnect.tests/src/test/java/org/jastadd/ros2rag/tests/DefaultOnlyReadTest.java similarity index 100% rename from ros2rag.tests/src/test/java/org/jastadd/ros2rag/tests/DefaultOnlyReadTest.java rename to ragconnect.tests/src/test/java/org/jastadd/ros2rag/tests/DefaultOnlyReadTest.java diff --git a/ros2rag.tests/src/test/java/org/jastadd/ros2rag/tests/DefaultOnlyWriteTest.java b/ragconnect.tests/src/test/java/org/jastadd/ros2rag/tests/DefaultOnlyWriteTest.java similarity index 100% rename from ros2rag.tests/src/test/java/org/jastadd/ros2rag/tests/DefaultOnlyWriteTest.java rename to ragconnect.tests/src/test/java/org/jastadd/ros2rag/tests/DefaultOnlyWriteTest.java diff --git a/ros2rag.tests/src/test/java/org/jastadd/ros2rag/tests/Errors.java b/ragconnect.tests/src/test/java/org/jastadd/ros2rag/tests/Errors.java similarity index 98% rename from ros2rag.tests/src/test/java/org/jastadd/ros2rag/tests/Errors.java rename to ragconnect.tests/src/test/java/org/jastadd/ros2rag/tests/Errors.java index a0fd5e7..be45a80 100644 --- a/ros2rag.tests/src/test/java/org/jastadd/ros2rag/tests/Errors.java +++ b/ragconnect.tests/src/test/java/org/jastadd/ros2rag/tests/Errors.java @@ -2,7 +2,7 @@ package org.jastadd.ros2rag.tests; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.jastadd.ros2rag.compiler.Compiler; +import org.jastadd.ragconnect.compiler.Compiler; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; diff --git a/ros2rag.tests/src/test/java/org/jastadd/ros2rag/tests/ExampleTest.java b/ragconnect.tests/src/test/java/org/jastadd/ros2rag/tests/ExampleTest.java similarity index 100% rename from ros2rag.tests/src/test/java/org/jastadd/ros2rag/tests/ExampleTest.java rename to ragconnect.tests/src/test/java/org/jastadd/ros2rag/tests/ExampleTest.java diff --git a/ros2rag.tests/src/test/java/org/jastadd/ros2rag/tests/Read1Write2Test.java b/ragconnect.tests/src/test/java/org/jastadd/ros2rag/tests/Read1Write2Test.java similarity index 100% rename from ros2rag.tests/src/test/java/org/jastadd/ros2rag/tests/Read1Write2Test.java rename to ragconnect.tests/src/test/java/org/jastadd/ros2rag/tests/Read1Write2Test.java diff --git a/ros2rag.tests/src/test/java/org/jastadd/ros2rag/tests/Read2Write1Test.java b/ragconnect.tests/src/test/java/org/jastadd/ros2rag/tests/Read2Write1Test.java similarity index 100% rename from ros2rag.tests/src/test/java/org/jastadd/ros2rag/tests/Read2Write1Test.java rename to ragconnect.tests/src/test/java/org/jastadd/ros2rag/tests/Read2Write1Test.java diff --git a/ros2rag.tests/src/test/java/org/jastadd/ros2rag/tests/TestUtils.java b/ragconnect.tests/src/test/java/org/jastadd/ros2rag/tests/TestUtils.java similarity index 100% rename from ros2rag.tests/src/test/java/org/jastadd/ros2rag/tests/TestUtils.java rename to ragconnect.tests/src/test/java/org/jastadd/ros2rag/tests/TestUtils.java diff --git a/ragconnect.tests/src/test/proto/config.proto b/ragconnect.tests/src/test/proto/config.proto new file mode 100644 index 0000000..38cb5d0 --- /dev/null +++ b/ragconnect.tests/src/test/proto/config.proto @@ -0,0 +1,7 @@ +syntax = "proto3"; + +package config; + +message RobotConfig { + double speed = 1; +} \ No newline at end of file diff --git a/ragconnect.tests/src/test/proto/robot_state.proto b/ragconnect.tests/src/test/proto/robot_state.proto new file mode 100644 index 0000000..6630631 --- /dev/null +++ b/ragconnect.tests/src/test/proto/robot_state.proto @@ -0,0 +1,37 @@ +syntax = "proto3"; + +package robot; + +message RobotState { + + message Position { + double x = 1; + double y = 2; + double z = 3; + } + + message Orientation { + double x = 1; + double y = 2; + double z = 3; + double w = 4; + } + + message LinearTwist { + double x = 1; + double y = 2; + double z = 3; + } + + message AngularTwist { + double x = 1; + double y = 2; + double z = 3; + } + + string name = 1; + Position position = 2; + Orientation orientation = 3; + LinearTwist linear_twist = 4; + AngularTwist angular_twist = 5; +} \ No newline at end of file diff --git a/ragconnect.tests/src/test/proto/trajectory.proto b/ragconnect.tests/src/test/proto/trajectory.proto new file mode 100644 index 0000000..4a7f375 --- /dev/null +++ b/ragconnect.tests/src/test/proto/trajectory.proto @@ -0,0 +1,33 @@ +syntax = "proto3"; + +package plan; + +message Trajectory { + + message Position { + double x = 1; + double y = 2; + double z = 3; + } + + message Orientation { + double x = 1; + double y = 2; + double z = 3; + double w = 4; + } + + enum PlanningMode { + FLUID = 0; + CARTESIAN = 1; + } + + message Pose { + Position position = 1; + Orientation orientation = 2; + PlanningMode mode = 3; + } + + repeated Pose pose = 1; + bool loop = 2; +} diff --git a/ros2rag.base/src/main/jastadd/parser/Preamble.parser b/ros2rag.base/src/main/jastadd/parser/Preamble.parser deleted file mode 100644 index 43fa51e..0000000 --- a/ros2rag.base/src/main/jastadd/parser/Preamble.parser +++ /dev/null @@ -1,7 +0,0 @@ -%header {: -package org.jastadd.ros2rag.parser; -import org.jastadd.ros2rag.ast.*; -:}; - -%goal goal; -%goal ros2rag; diff --git a/ros2rag.base/src/main/jastadd/scanner/Header.flex b/ros2rag.base/src/main/jastadd/scanner/Header.flex deleted file mode 100644 index 974aa01..0000000 --- a/ros2rag.base/src/main/jastadd/scanner/Header.flex +++ /dev/null @@ -1,17 +0,0 @@ -package org.jastadd.ros2rag.scanner; - -import org.jastadd.ros2rag.parser.Ros2RagParser.Terminals; -%% - -%public -%final -%class Ros2RagScanner -%extends beaver.Scanner - -%type beaver.Symbol -%function nextToken -%yylexthrow beaver.Scanner.Exception -%scanerror Ros2RagScanner.ScannerError - -%line -%column diff --git a/ros2rag.common/build.gradle b/ros2rag.common/build.gradle index 6d0657b..28d3826 100644 --- a/ros2rag.common/build.gradle +++ b/ros2rag.common/build.gradle @@ -28,8 +28,6 @@ test { } protobuf { - // create strange directories, so use default here -// generatedFilesBaseDir = "$projectDir/src/gen/java" protoc { // The artifact spec for the Protobuf Compiler artifact = 'com.google.protobuf:protoc:3.0.0' diff --git a/ros2rag.goal/build.gradle b/ros2rag.goal/build.gradle index c124190..d325acd 100644 --- a/ros2rag.goal/build.gradle +++ b/ros2rag.goal/build.gradle @@ -21,9 +21,9 @@ configurations { sourceSets.main.java.srcDir "src/gen/java" dependencies { - implementation project (':ros2rag.base') + implementation project (':ragconnect.base') implementation project (':ros2rag.common') - baseRuntimeClasspath project (':ros2rag.base') + baseRuntimeClasspath project (':ragconnect.base') api group: 'org.fusesource.mqtt-client', name: 'mqtt-client', version: '1.15' jastadd2 "org.jastadd:jastadd:2.3.4" @@ -32,19 +32,19 @@ dependencies { // Input files for relast def relastFiles = ["src/gen/jastadd/Grammar.relast"] -// phases: Ros2Rag -> RelAst -> JastAdd -// phase: Ros2Rag -task ros2rag(type: JavaExec) { +// phases: ragConnect -> RelAst -> JastAdd +// phase: ragConnect +task ragConnect(type: JavaExec) { classpath = configurations.baseRuntimeClasspath group = 'Build' - main = 'org.jastadd.ros2rag.compiler.Compiler' + main = 'org.jastadd.ragconnect.compiler.Compiler' args([ '--verbose', '--outputDir=src/gen/jastadd', '--inputGrammar=src/main/jastadd/GoalModel.relast', - '--inputRos2Rag=src/main/jastadd/GoalModel.ros2rag', + '--inputRagConnect=src/main/jastadd/GoalModel.connect', '--rootNode=GoalModel' ]) } @@ -119,4 +119,4 @@ jastadd { // Workflow configuration for phases generateAst.dependsOn relastToJastAdd -relastToJastAdd.dependsOn ros2rag +relastToJastAdd.dependsOn ragConnect diff --git a/ros2rag.goal/src/main/jastadd/GoalModel.ros2rag b/ros2rag.goal/src/main/jastadd/GoalModel.connect similarity index 100% rename from ros2rag.goal/src/main/jastadd/GoalModel.ros2rag rename to ros2rag.goal/src/main/jastadd/GoalModel.connect diff --git a/ros2rag.receiverstub/build.gradle b/ros2rag.receiverstub/build.gradle index db37ca2..73d331a 100644 --- a/ros2rag.receiverstub/build.gradle +++ b/ros2rag.receiverstub/build.gradle @@ -1,3 +1,4 @@ +apply plugin: 'jastadd' apply plugin: 'application' mainClassName = 'de.tudresden.inf.st.ros2rag.receiverstub.ReceiverMain' @@ -8,11 +9,76 @@ repositories { buildscript { repositories.jcenter() + dependencies { + classpath 'org.jastadd:jastaddgradle:1.13.3' + } } sourceSets.main.java.srcDir "src/gen/java" +configurations { + baseRuntimeClasspath +} + dependencies { - implementation project(':ros2rag.starter') + implementation project(':ragconnect.base') implementation project(':ros2rag.common') + baseRuntimeClasspath project (':ragconnect.base') + api group: 'org.fusesource.mqtt-client', name: 'mqtt-client', version: '1.15' + + jastadd2 "org.jastadd:jastadd:2.3.4" +} + +task ragConnect(type: JavaExec) { + classpath = configurations.baseRuntimeClasspath + + group = 'Build' + main = 'org.jastadd.ragconnect.compiler.Compiler' + + args([ + '--verbose', + '--outputDir=src/gen/jastadd', + '--inputGrammar=src/main/jastadd/Receiver.ast', + '--inputRagConnect=src/main/jastadd/Receiver.connect', + '--rootNode=Receiver' + ]) +} + +// phase: JastAdd +jastadd { + configureModuleBuild() + modules { + //noinspection GroovyAssignabilityCheck + module("receiver") { + + java { + basedir "src/" + include "main/**/*.java" + include "gen/**/*.java" + } + + jastadd { + basedir "src/" + include "main/jastadd/Receiver.ast" + include "gen/jastadd/**/*.jadd" + } + } + } + cleanGen.doFirst { + delete "src/gen/java/de" + delete "src/gen-res/BuildInfo.properties" + } + preprocessParser.doFirst { + args += ["--no-beaver-symbol"] + } + module = "receiver" + astPackage = 'de.tudresden.inf.st.ros2rag.receiverstub.ast' + genDir = 'src/gen/java' + buildInfoDir = 'src/gen-res' + // jastaddOptions = ["--lineColumnNumbers", "--visitCheck=true", "--rewrite=cnta", "--cache=all"] + // default options are: '--rewrite=cnta', '--safeLazy', '--visitCheck=false', '--cacheCycle=false' + extraJastAddOptions = ["--lineColumnNumbers", '--List=JastAddList'] } + +// Workflow configuration for phases +generateAst.dependsOn ragConnect diff --git a/ros2rag.receiverstub/src/main/jastadd/Receiver.ast b/ros2rag.receiverstub/src/main/jastadd/Receiver.ast new file mode 100644 index 0000000..6990d9f --- /dev/null +++ b/ros2rag.receiverstub/src/main/jastadd/Receiver.ast @@ -0,0 +1 @@ +Receiver; diff --git a/ros2rag.receiverstub/src/main/jastadd/Receiver.connect b/ros2rag.receiverstub/src/main/jastadd/Receiver.connect new file mode 100644 index 0000000..e69de29 diff --git a/ros2rag.receiverstub/src/main/java/de/tudresden/inf/st/ros2rag/receiverstub/ReceiverMain.java b/ros2rag.receiverstub/src/main/java/de/tudresden/inf/st/ros2rag/receiverstub/ReceiverMain.java index 0ea8aa9..c56175a 100644 --- a/ros2rag.receiverstub/src/main/java/de/tudresden/inf/st/ros2rag/receiverstub/ReceiverMain.java +++ b/ros2rag.receiverstub/src/main/java/de/tudresden/inf/st/ros2rag/receiverstub/ReceiverMain.java @@ -4,7 +4,7 @@ import com.google.protobuf.InvalidProtocolBufferException; import config.Config.RobotConfig; import de.tudresden.inf.st.ros2rag.common.DataConfiguration.ActualConfiguration; import de.tudresden.inf.st.ros2rag.common.Util; -import de.tudresden.inf.st.ros2rag.starter.ast.MqttHandler; +import de.tudresden.inf.st.ros2rag.receiverstub.ast.MqttHandler; import org.apache.logging.log4j.Level; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; diff --git a/ros2rag.tests/.gitignore b/ros2rag.safety/.gitignore similarity index 100% rename from ros2rag.tests/.gitignore rename to ros2rag.safety/.gitignore diff --git a/ros2rag.starter/build.gradle b/ros2rag.safety/build.gradle similarity index 90% rename from ros2rag.starter/build.gradle rename to ros2rag.safety/build.gradle index 88f304a..f657820 100644 --- a/ros2rag.starter/build.gradle +++ b/ros2rag.safety/build.gradle @@ -21,9 +21,9 @@ configurations { sourceSets.main.java.srcDir "src/gen/java" dependencies { - implementation project (':ros2rag.base') + implementation project (':ragconnect.base') implementation project (':ros2rag.common') - baseRuntimeClasspath project (':ros2rag.base') + baseRuntimeClasspath project (':ragconnect.base') api group: 'org.fusesource.mqtt-client', name: 'mqtt-client', version: '1.15' jastadd2 "org.jastadd:jastadd:2.3.4" @@ -38,13 +38,13 @@ task ros2rag(type: JavaExec) { classpath = configurations.baseRuntimeClasspath group = 'Build' - main = 'org.jastadd.ros2rag.compiler.Compiler' + main = 'org.jastadd.ragconnect.compiler.Compiler' args([ '--verbose', '--outputDir=src/gen/jastadd', - '--inputGrammar=src/main/jastadd/RobotModel.relast', - '--inputRos2Rag=src/main/jastadd/Definitions.ros2rag', + '--inputGrammar=src/main/jastadd/SafetyModel.relast', + '--inputRagConnect=src/main/jastadd/SafetyModel.connect', '--rootNode=Model' ]) } diff --git a/ros2rag.starter/src/main/jastadd/Computation.jrag b/ros2rag.safety/src/main/jastadd/Computation.jrag similarity index 100% rename from ros2rag.starter/src/main/jastadd/Computation.jrag rename to ros2rag.safety/src/main/jastadd/Computation.jrag diff --git a/ros2rag.starter/src/main/jastadd/Navigation.jrag b/ros2rag.safety/src/main/jastadd/Navigation.jrag similarity index 100% rename from ros2rag.starter/src/main/jastadd/Navigation.jrag rename to ros2rag.safety/src/main/jastadd/Navigation.jrag diff --git a/ros2rag.starter/src/main/jastadd/Definitions.ros2rag b/ros2rag.safety/src/main/jastadd/SafetyModel.connect similarity index 100% rename from ros2rag.starter/src/main/jastadd/Definitions.ros2rag rename to ros2rag.safety/src/main/jastadd/SafetyModel.connect diff --git a/ros2rag.starter/src/main/jastadd/RobotModel.jadd b/ros2rag.safety/src/main/jastadd/SafetyModel.jadd similarity index 100% rename from ros2rag.starter/src/main/jastadd/RobotModel.jadd rename to ros2rag.safety/src/main/jastadd/SafetyModel.jadd diff --git a/ros2rag.starter/src/main/jastadd/RobotModel.relast b/ros2rag.safety/src/main/jastadd/SafetyModel.relast similarity index 100% rename from ros2rag.starter/src/main/jastadd/RobotModel.relast rename to ros2rag.safety/src/main/jastadd/SafetyModel.relast diff --git a/ros2rag.starter/src/main/java/de/tudresden/inf/st/ros2rag/starter/StarterMain.java b/ros2rag.safety/src/main/java/de/tudresden/inf/st/ros2rag/starter/StarterMain.java similarity index 100% rename from ros2rag.starter/src/main/java/de/tudresden/inf/st/ros2rag/starter/StarterMain.java rename to ros2rag.safety/src/main/java/de/tudresden/inf/st/ros2rag/starter/StarterMain.java diff --git a/ros2rag.starter/src/main/resources/log4j2.xml b/ros2rag.safety/src/main/resources/log4j2.xml similarity index 100% rename from ros2rag.starter/src/main/resources/log4j2.xml rename to ros2rag.safety/src/main/resources/log4j2.xml diff --git a/ros2rag.senderstub/build.gradle b/ros2rag.senderstub/build.gradle index 063f22e..4996963 100644 --- a/ros2rag.senderstub/build.gradle +++ b/ros2rag.senderstub/build.gradle @@ -1,3 +1,4 @@ +apply plugin: 'jastadd' apply plugin: 'application' mainClassName = 'de.tudresden.inf.st.ros2rag.senderstub.SenderMain' @@ -8,11 +9,76 @@ repositories { buildscript { repositories.jcenter() + dependencies { + classpath 'org.jastadd:jastaddgradle:1.13.3' + } } sourceSets.main.java.srcDir "src/gen/java" +configurations { + baseRuntimeClasspath +} + dependencies { - implementation project(':ros2rag.starter') + implementation project(':ragconnect.base') implementation project(':ros2rag.common') + baseRuntimeClasspath project (':ragconnect.base') + api group: 'org.fusesource.mqtt-client', name: 'mqtt-client', version: '1.15' + + jastadd2 "org.jastadd:jastadd:2.3.4" +} + +task ragConnect(type: JavaExec) { + classpath = configurations.baseRuntimeClasspath + + group = 'Build' + main = 'org.jastadd.ragconnect.compiler.Compiler' + + args([ + '--verbose', + '--outputDir=src/gen/jastadd', + '--inputGrammar=src/main/jastadd/Sender.ast', + '--inputRagConnect=src/main/jastadd/Sender.connect', + '--rootNode=Sender' + ]) +} + +// phase: JastAdd +jastadd { + configureModuleBuild() + modules { + //noinspection GroovyAssignabilityCheck + module("receiver") { + + java { + basedir "src/" + include "main/**/*.java" + include "gen/**/*.java" + } + + jastadd { + basedir "src/" + include "main/jastadd/Sender.ast" + include "gen/jastadd/**/*.jadd" + } + } + } + cleanGen.doFirst { + delete "src/gen/java/de" + delete "src/gen-res/BuildInfo.properties" + } + preprocessParser.doFirst { + args += ["--no-beaver-symbol"] + } + module = "receiver" + astPackage = 'de.tudresden.inf.st.ros2rag.senderstub.ast' + genDir = 'src/gen/java' + buildInfoDir = 'src/gen-res' + // jastaddOptions = ["--lineColumnNumbers", "--visitCheck=true", "--rewrite=cnta", "--cache=all"] + // default options are: '--rewrite=cnta', '--safeLazy', '--visitCheck=false', '--cacheCycle=false' + extraJastAddOptions = ["--lineColumnNumbers", '--List=JastAddList'] } + +// Workflow configuration for phases +generateAst.dependsOn ragConnect diff --git a/ros2rag.senderstub/src/main/jastadd/Sender.ast b/ros2rag.senderstub/src/main/jastadd/Sender.ast new file mode 100644 index 0000000..1510af6 --- /dev/null +++ b/ros2rag.senderstub/src/main/jastadd/Sender.ast @@ -0,0 +1 @@ +Sender; diff --git a/ros2rag.senderstub/src/main/jastadd/Sender.connect b/ros2rag.senderstub/src/main/jastadd/Sender.connect new file mode 100644 index 0000000..e69de29 diff --git a/ros2rag.senderstub/src/main/java/de/tudresden/inf/st/ros2rag/senderstub/SenderMain.java b/ros2rag.senderstub/src/main/java/de/tudresden/inf/st/ros2rag/senderstub/SenderMain.java index e767cdd..63e2996 100644 --- a/ros2rag.senderstub/src/main/java/de/tudresden/inf/st/ros2rag/senderstub/SenderMain.java +++ b/ros2rag.senderstub/src/main/java/de/tudresden/inf/st/ros2rag/senderstub/SenderMain.java @@ -1,6 +1,6 @@ package de.tudresden.inf.st.ros2rag.senderstub; -import de.tudresden.inf.st.ros2rag.starter.ast.MqttHandler; +import de.tudresden.inf.st.ros2rag.senderstub.ast.MqttHandler; import robot.RobotStateOuterClass.RobotState; import java.nio.file.Files; diff --git a/ros2rag.tests/src/test/java-gen/.gitignore b/ros2rag.tests/src/test/java-gen/.gitignore deleted file mode 100644 index d6b7ef3..0000000 --- a/ros2rag.tests/src/test/java-gen/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -* -!.gitignore diff --git a/ros2rag.tests/src/test/proto b/ros2rag.tests/src/test/proto deleted file mode 120000 index bb7d2ba..0000000 --- a/ros2rag.tests/src/test/proto +++ /dev/null @@ -1 +0,0 @@ -../../../ros2rag.common/proto/ \ No newline at end of file diff --git a/safety.sh b/safety.sh new file mode 100755 index 0000000..369bcfd --- /dev/null +++ b/safety.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash +./gradlew :ros2rag.safety:installDist && \ + ./ros2rag.safety/build/install/ros2rag.safety/bin/ros2rag.safety $@ diff --git a/settings.gradle b/settings.gradle index 9235870..cc56321 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,9 +1,9 @@ rootProject.name = 'ros2rag' include 'relast.preprocessor' -include 'ros2rag.base' -include 'ros2rag.tests' -include 'ros2rag.starter' +include 'ragconnect.base' +include 'ragconnect.tests' +include 'ros2rag.safety' include 'ros2rag.senderstub' include 'ros2rag.receiverstub' include 'ros2rag.goal' diff --git a/starter.sh b/starter.sh deleted file mode 100755 index e3bb9b9..0000000 --- a/starter.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env bash -./gradlew :ros2rag.starter:installDist && \ - ./ros2rag.starter/build/install/ros2rag.starter/bin/ros2rag.starter $@ -- GitLab