From 908310ea7bb2819460d76e2313bfb581d5fec271 Mon Sep 17 00:00:00 2001
From: rschoene <rene.schoene@tu-dresden.de>
Date: Wed, 2 Jun 2021 17:39:22 +0200
Subject: [PATCH] Update relast-preprocessor to newest version.

- remove mustache (reuse the submodule of the preprocessor)
- align attributes and build logic to changes in preprocessor
---
 .gitmodules                                   |  5 +---
 ragconnect.base/build.gradle                  |  3 +-
 .../src/main/jastadd/Navigation.jrag          | 29 ++++++++++++-------
 .../MustacheNodesToYAML.jrag                  |  2 +-
 ragconnect.base/src/main/jastadd/mustache     |  1 -
 .../ragconnect/tests/RegressionTests.java     |  3 +-
 relast-preprocessor                           |  2 +-
 settings.gradle                               |  6 ++++
 8 files changed, 31 insertions(+), 20 deletions(-)
 delete mode 160000 ragconnect.base/src/main/jastadd/mustache

diff --git a/.gitmodules b/.gitmodules
index 0163ef8..58efd10 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 e212a39..77bafe5 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 6ab782f..d3890f7 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 9de1c1e..ef54a74 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 c10bed0..0000000
--- 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 5aeca96..d4d7389 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 b538a7f..02f8e35 160000
--- a/relast-preprocessor
+++ b/relast-preprocessor
@@ -1 +1 @@
-Subproject commit b538a7f709167c5f56fe65e6d9e9f02179cacaef
+Subproject commit 02f8e35993dc3f62ab49e94f69a6dc27170660da
diff --git a/settings.gradle b/settings.gradle
index e776987..8a597cf 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'
-- 
GitLab