diff --git a/.gitmodules b/.gitmodules index 0163ef86549d9ee0ba792961799f705881d1f893..58efd108e858ae06dde5f626286bd3d73f9dde4e 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,7 +1,4 @@ [submodule "relast-preprocessor"] path = relast-preprocessor url = ../relast-preprocessor.git - branch = jastadd-fix-inc-param-debug -[submodule "ragconnect.base/src/main/jastadd/mustache"] - path = ragconnect.base/src/main/jastadd/mustache - url = ../mustache + branch = develop diff --git a/ragconnect.base/build.gradle b/ragconnect.base/build.gradle index e212a394a62cd29887daa30973dfc9ceb39af6be..77bafe579a620ca243e1061785fcf1ddef8a3108 100644 --- a/ragconnect.base/build.gradle +++ b/ragconnect.base/build.gradle @@ -78,7 +78,7 @@ jar { File preprocessorGrammar = file('../relast-preprocessor/src/main/jastadd/RelAst.relast') File ragConnectGrammar = file('./src/main/jastadd/RagConnect.relast') File intermediateGrammar = file('./src/main/jastadd/intermediate/MustacheNodes.relast') -File mustacheGrammar = file('./src/main/jastadd/mustache/Mustache.relast') +File mustacheGrammar = file('../relast-preprocessor/src/main/jastadd/mustache/Mustache.relast') task relast(type: JavaExec) { group = 'Build' main = "-jar" @@ -220,3 +220,4 @@ publishing { } publish.dependsOn jar +jar.dependsOn ":relast-preprocessor:jar" diff --git a/ragconnect.base/src/main/jastadd/Navigation.jrag b/ragconnect.base/src/main/jastadd/Navigation.jrag index 6ab782f07256aa39b97099ce6d0b982b5f02c1c8..d3890f7d22a195127e7688435f9168aa64a37eac 100644 --- a/ragconnect.base/src/main/jastadd/Navigation.jrag +++ b/ragconnect.base/src/main/jastadd/Navigation.jrag @@ -1,7 +1,7 @@ import java.util.List; import java.util.ArrayList; -aspect Navigation { +aspect RagConnectNavigation { // --- program --- eq RagConnect.getChild().program() = getProgram(); @@ -12,16 +12,27 @@ aspect Navigation { eq RagConnect.getChild().ragconnect() = this; eq MRagConnect.getChild().ragconnect() = getRagConnect(); + // --- containedConnectSpecification --- + inh ConnectSpecification ASTNode.containedConnectSpecification(); + eq RagConnect.getChild().containedConnectSpecification() = null; + eq MRagConnect.getChild().containedConnectSpecification() = null; + eq Document.getChild().containedConnectSpecification() = null; + eq Program.getChild().containedConnectSpecification() = null; + eq ConnectSpecification.getChild().containedConnectSpecification() = this; + // --- containedFile - eq Grammar.getChild().containedFile() = null; eq RagConnect.getChild().containedFile() = null; eq MRagConnect.getChild().containedFile() = null; // --- containedFileName --- - eq Grammar.getChild().containedFileName() = null; // should be in PP - eq RagConnect.getChild().containedFileName() = null; - eq ConnectSpecificationFile.getChild().containedFileName() = getFileName(); - eq MRagConnect.getChild().containedFileName() = null; + eq ConnectSpecificationFile.containedFileName() = getFileName(); + refine Navigation eq ASTNode.containedFileName() { + if (containedFile() == null) { + return containedConnectSpecification().containedFileName(); + } + return refined(); +// return containedFile().getFileName(); + } //--- allEndpointDefinitionList --- syn List<EndpointDefinition> RagConnect.allEndpointDefinitionList() { @@ -128,8 +139,6 @@ aspect Navigation { // --- rootTypeComponents --- syn JastAddList<MTypeComponent> MHandler.rootTypeComponents() = mragconnect().getRootTypeComponents(); - // === for preprocessor === - // --- isOptComponent --- - syn boolean TypeComponent.isOptComponent() = false; - eq OptComponent.isOptComponent() = true; + // --- isListComponent --- (defined in PP, but only on TypeComponent) + syn boolean Component.isListComponent() = false; } diff --git a/ragconnect.base/src/main/jastadd/intermediate2mustache/MustacheNodesToYAML.jrag b/ragconnect.base/src/main/jastadd/intermediate2mustache/MustacheNodesToYAML.jrag index 9de1c1e6ecf3e2f05580b3c324316708e353ad40..ef54a74e6fd57f11f17530e53524c63446277ca3 100644 --- a/ragconnect.base/src/main/jastadd/intermediate2mustache/MustacheNodesToYAML.jrag +++ b/ragconnect.base/src/main/jastadd/intermediate2mustache/MustacheNodesToYAML.jrag @@ -206,5 +206,5 @@ aspect Navigation { eq Document.getChild().program() = null; eq Document.getChild().ragconnect() = null; eq Document.getChild().containedFile() = null; - eq Document.getChild().containedFileName() = getFileName(); + eq Document.containedFileName() = getFileName(); } diff --git a/ragconnect.base/src/main/jastadd/mustache b/ragconnect.base/src/main/jastadd/mustache deleted file mode 160000 index c10bed0d03e3fa18b8133ce1de48de7646899615..0000000000000000000000000000000000000000 --- a/ragconnect.base/src/main/jastadd/mustache +++ /dev/null @@ -1 +0,0 @@ -Subproject commit c10bed0d03e3fa18b8133ce1de48de7646899615 diff --git a/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/RegressionTests.java b/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/RegressionTests.java index 5aeca965351a999ed31416a2291f2948358e2d27..d4d7389dafd0b3e7ff8f96ccd9bb67bca8977cd9 100644 --- a/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/RegressionTests.java +++ b/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/RegressionTests.java @@ -21,8 +21,7 @@ public class RegressionTests { String connectFile = "regression-tests/issue27/Test.connect"; grammarFile = ensureNoTrailingNewLine(grammarFile); connectFile = ensureNoTrailingNewLine(connectFile); - // FIXME Once fixed in pre-processor, change expected return value from 1 to 0 - TestUtils.runCompiler(grammarFile, Collections.singletonList(connectFile), "A", REGRESSION_TEST_OUTPUT_DIRECTORY, 1); + TestUtils.runCompiler(grammarFile, Collections.singletonList(connectFile), "A", REGRESSION_TEST_OUTPUT_DIRECTORY, 0); } private String ensureNoTrailingNewLine(String inputFileSuffix) throws IOException { diff --git a/relast-preprocessor b/relast-preprocessor index b538a7f709167c5f56fe65e6d9e9f02179cacaef..02f8e35993dc3f62ab49e94f69a6dc27170660da 160000 --- a/relast-preprocessor +++ b/relast-preprocessor @@ -1 +1 @@ -Subproject commit b538a7f709167c5f56fe65e6d9e9f02179cacaef +Subproject commit 02f8e35993dc3f62ab49e94f69a6dc27170660da diff --git a/settings.gradle b/settings.gradle index e7769874a5f3186274ceecbcd445feeb656cf9a4..8a597cfa491920744bb8b5e1d3f103fb4fc95bb1 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,3 +1,9 @@ +pluginManagement { + plugins { + id 'org.jastadd' version '1.13.3' + } +} + rootProject.name = 'ragconnect' include 'relast-preprocessor'