From 6fb460475a37238d6c54aaab271bb30f8e87788e Mon Sep 17 00:00:00 2001
From: rschoene <rene.schoene@tu-dresden.de>
Date: Thu, 15 Apr 2021 18:32:18 +0200
Subject: [PATCH] begin with making variants explicit

---
 cp-to-solution.sh                             |   4 +-
 namelookup-xml-flush/.gitignore               |   6 +
 namelookup-xml-flush/build.gradle             |  19 +++
 namelookup-xml-flush/jastadd_modules          |  10 ++
 namelookup-xml-flush/libs                     |   1 +
 namelookup-xml-flush/src/main                 |   1 +
 namelookup-xml-flush/src/test                 |   1 +
 namelookup-xml-inc/.gitignore                 |   6 +
 namelookup-xml-inc/build.gradle               |  19 +++
 namelookup-xml-inc/jastadd_modules            |  10 ++
 namelookup-xml-inc/libs                       |   1 +
 namelookup-xml-inc/src/main                   |   1 +
 namelookup-xml-inc/src/test                   |   1 +
 relast-xml-flush/.gitignore                   |   6 +
 relast-xml-flush/build.gradle                 |  19 +++
 relast-xml-flush/jastadd_modules              |  10 ++
 relast-xml-flush/libs                         |   1 +
 relast-xml-flush/src/main                     |   1 +
 relast-xml-flush/src/test                     |   1 +
 relast-xml-inc/.gitignore                     |   6 +
 relast-xml-inc/build.gradle                   |  19 +++
 relast-xml-inc/jastadd_modules                |  10 ++
 relast-xml-inc/libs                           |   1 +
 relast-xml-inc/src/main                       |   1 +
 relast-xml-inc/src/test                       |   1 +
 settings.gradle                               |   4 +
 solve/build.gradle                            | 125 +-----------------
 solve/gradle-parts/base.gradle                | 100 ++++++++++++++
 solve/gradle-parts/inc-flush.gradle           |   0
 solve/gradle-parts/inc-incremental.gradle     |   0
 solve/gradle-parts/rel-namelookup.gradle      |   0
 solve/gradle-parts/rel-relast.gradle          |   1 +
 solve/jastadd_modules                         |  23 ++--
 solve/src/main/jastadd/NTA.jrag               |   2 +-
 .../Refs.jadd}                                |   0
 .../SocialNetworkNamelookup.ast}              |   0
 time-q1.sh                                    |   2 +
 37 files changed, 274 insertions(+), 139 deletions(-)
 create mode 100644 namelookup-xml-flush/.gitignore
 create mode 100644 namelookup-xml-flush/build.gradle
 create mode 100644 namelookup-xml-flush/jastadd_modules
 create mode 120000 namelookup-xml-flush/libs
 create mode 120000 namelookup-xml-flush/src/main
 create mode 120000 namelookup-xml-flush/src/test
 create mode 100644 namelookup-xml-inc/.gitignore
 create mode 100644 namelookup-xml-inc/build.gradle
 create mode 100644 namelookup-xml-inc/jastadd_modules
 create mode 120000 namelookup-xml-inc/libs
 create mode 120000 namelookup-xml-inc/src/main
 create mode 120000 namelookup-xml-inc/src/test
 create mode 100644 relast-xml-flush/.gitignore
 create mode 100644 relast-xml-flush/build.gradle
 create mode 100644 relast-xml-flush/jastadd_modules
 create mode 120000 relast-xml-flush/libs
 create mode 120000 relast-xml-flush/src/main
 create mode 120000 relast-xml-flush/src/test
 create mode 100644 relast-xml-inc/.gitignore
 create mode 100644 relast-xml-inc/build.gradle
 create mode 100644 relast-xml-inc/jastadd_modules
 create mode 120000 relast-xml-inc/libs
 create mode 120000 relast-xml-inc/src/main
 create mode 120000 relast-xml-inc/src/test
 create mode 100644 solve/gradle-parts/base.gradle
 create mode 100644 solve/gradle-parts/inc-flush.gradle
 create mode 100644 solve/gradle-parts/inc-incremental.gradle
 create mode 100644 solve/gradle-parts/rel-namelookup.gradle
 create mode 100644 solve/gradle-parts/rel-relast.gradle
 rename solve/src/main/{jastadd/Refs.jadd.unused => namelookup-jastadd/Refs.jadd} (100%)
 rename solve/src/main/{jastadd/SocialNetworkNamelookup.ast.unused => namelookup-jastadd/SocialNetworkNamelookup.ast} (100%)
 create mode 100755 time-q1.sh

diff --git a/cp-to-solution.sh b/cp-to-solution.sh
index 00c6a00..6746d80 100755
--- a/cp-to-solution.sh
+++ b/cp-to-solution.sh
@@ -64,7 +64,7 @@ function build() {
 
 function prepare_namelookup() {
   # deactivate preprocess
-  sed -i 's|^jastadd.dependsOn preprocess|//jastadd.dependsOn preprocess|g' solve/build.gradle
+  sed -i 's|^generateAst.dependsOn preprocess|//generateAst.dependsOn preprocess|g' solve/build.gradle
   # remove generated AST and helper files, activate namelookup AST and helper jadd files
   ( cd solve/src/main/jastadd &&
     rm SocialNetworkGen.ast SocialNetworkGen.jadd &&
@@ -74,7 +74,7 @@ function prepare_namelookup() {
 
 function revert_namelookup() {
   # activate preprocess
-  sed -i 's|//jastadd.dependsOn preprocess|jastadd.dependsOn preprocess|g' solve/build.gradle
+  sed -i 's|//generateAst.dependsOn preprocess|generateAst.dependsOn preprocess|g' solve/build.gradle
   # deactivate normal AST and helper jadd files
   ( cd solve/src/main/jastadd &&
     mv Refs.jadd Refs.jadd.unused &&
diff --git a/namelookup-xml-flush/.gitignore b/namelookup-xml-flush/.gitignore
new file mode 100644
index 0000000..bef26b5
--- /dev/null
+++ b/namelookup-xml-flush/.gitignore
@@ -0,0 +1,6 @@
+/src/gen/
+/src/gen-res/
+/build/
+events.txt
+/src/main/jastadd/SocialNetworkGen.ast
+/src/main/jastadd/SocialNetworkGen.jadd
diff --git a/namelookup-xml-flush/build.gradle b/namelookup-xml-flush/build.gradle
new file mode 100644
index 0000000..ad75fcf
--- /dev/null
+++ b/namelookup-xml-flush/build.gradle
@@ -0,0 +1,19 @@
+buildscript {
+    repositories.mavenCentral()
+    dependencies {
+        classpath group: 'org.jastadd', name: 'jastaddgradle', version: '1.13.3'
+    }
+}
+
+plugins {
+    id 'application'
+    id 'maven'
+    id 'java'
+    id 'idea'
+}
+
+apply from: '../solve/gradle-parts/base.gradle'
+
+apply from: '../solve/gradle-parts/inc-flush.gradle'
+
+apply from: '../solve/gradle-parts/rel-namelookup.gradle'
diff --git a/namelookup-xml-flush/jastadd_modules b/namelookup-xml-flush/jastadd_modules
new file mode 100644
index 0000000..9efe1ba
--- /dev/null
+++ b/namelookup-xml-flush/jastadd_modules
@@ -0,0 +1,10 @@
+module("solve") {
+    jastadd {
+        basedir "src/"
+        include "main/jastadd/**/*.ast"
+        include "main/jastadd/**/*.jadd"
+        include "main/jastadd/**/*.jrag"
+        include "main/namelookup-jastadd/**/*.jadd"
+        include "main/namelookup-jastadd/**/*.ast"
+    }
+}
diff --git a/namelookup-xml-flush/libs b/namelookup-xml-flush/libs
new file mode 120000
index 0000000..8810c45
--- /dev/null
+++ b/namelookup-xml-flush/libs
@@ -0,0 +1 @@
+../solve/libs
\ No newline at end of file
diff --git a/namelookup-xml-flush/src/main b/namelookup-xml-flush/src/main
new file mode 120000
index 0000000..009e6af
--- /dev/null
+++ b/namelookup-xml-flush/src/main
@@ -0,0 +1 @@
+../../solve/src/main
\ No newline at end of file
diff --git a/namelookup-xml-flush/src/test b/namelookup-xml-flush/src/test
new file mode 120000
index 0000000..86aebbf
--- /dev/null
+++ b/namelookup-xml-flush/src/test
@@ -0,0 +1 @@
+../../solve/src/test
\ No newline at end of file
diff --git a/namelookup-xml-inc/.gitignore b/namelookup-xml-inc/.gitignore
new file mode 100644
index 0000000..bef26b5
--- /dev/null
+++ b/namelookup-xml-inc/.gitignore
@@ -0,0 +1,6 @@
+/src/gen/
+/src/gen-res/
+/build/
+events.txt
+/src/main/jastadd/SocialNetworkGen.ast
+/src/main/jastadd/SocialNetworkGen.jadd
diff --git a/namelookup-xml-inc/build.gradle b/namelookup-xml-inc/build.gradle
new file mode 100644
index 0000000..9072536
--- /dev/null
+++ b/namelookup-xml-inc/build.gradle
@@ -0,0 +1,19 @@
+buildscript {
+    repositories.mavenCentral()
+    dependencies {
+        classpath group: 'org.jastadd', name: 'jastaddgradle', version: '1.13.3'
+    }
+}
+
+plugins {
+    id 'application'
+    id 'maven'
+    id 'java'
+    id 'idea'
+}
+
+apply from: '../solve/gradle-parts/base.gradle'
+
+apply from: '../solve/gradle-parts/inc-incremental.gradle'
+
+apply from: '../solve/gradle-parts/rel-namelookup.gradle'
diff --git a/namelookup-xml-inc/jastadd_modules b/namelookup-xml-inc/jastadd_modules
new file mode 100644
index 0000000..9efe1ba
--- /dev/null
+++ b/namelookup-xml-inc/jastadd_modules
@@ -0,0 +1,10 @@
+module("solve") {
+    jastadd {
+        basedir "src/"
+        include "main/jastadd/**/*.ast"
+        include "main/jastadd/**/*.jadd"
+        include "main/jastadd/**/*.jrag"
+        include "main/namelookup-jastadd/**/*.jadd"
+        include "main/namelookup-jastadd/**/*.ast"
+    }
+}
diff --git a/namelookup-xml-inc/libs b/namelookup-xml-inc/libs
new file mode 120000
index 0000000..8810c45
--- /dev/null
+++ b/namelookup-xml-inc/libs
@@ -0,0 +1 @@
+../solve/libs
\ No newline at end of file
diff --git a/namelookup-xml-inc/src/main b/namelookup-xml-inc/src/main
new file mode 120000
index 0000000..009e6af
--- /dev/null
+++ b/namelookup-xml-inc/src/main
@@ -0,0 +1 @@
+../../solve/src/main
\ No newline at end of file
diff --git a/namelookup-xml-inc/src/test b/namelookup-xml-inc/src/test
new file mode 120000
index 0000000..86aebbf
--- /dev/null
+++ b/namelookup-xml-inc/src/test
@@ -0,0 +1 @@
+../../solve/src/test
\ No newline at end of file
diff --git a/relast-xml-flush/.gitignore b/relast-xml-flush/.gitignore
new file mode 100644
index 0000000..bef26b5
--- /dev/null
+++ b/relast-xml-flush/.gitignore
@@ -0,0 +1,6 @@
+/src/gen/
+/src/gen-res/
+/build/
+events.txt
+/src/main/jastadd/SocialNetworkGen.ast
+/src/main/jastadd/SocialNetworkGen.jadd
diff --git a/relast-xml-flush/build.gradle b/relast-xml-flush/build.gradle
new file mode 100644
index 0000000..f4619e2
--- /dev/null
+++ b/relast-xml-flush/build.gradle
@@ -0,0 +1,19 @@
+buildscript {
+    repositories.mavenCentral()
+    dependencies {
+        classpath group: 'org.jastadd', name: 'jastaddgradle', version: '1.13.3'
+    }
+}
+
+plugins {
+    id 'application'
+    id 'maven'
+    id 'java'
+    id 'idea'
+}
+
+apply from: '../solve/gradle-parts/base.gradle'
+
+apply from: '../solve/gradle-parts/inc-flush.gradle'
+
+apply from: '../solve/gradle-parts/rel-relast.gradle'
diff --git a/relast-xml-flush/jastadd_modules b/relast-xml-flush/jastadd_modules
new file mode 100644
index 0000000..e126e37
--- /dev/null
+++ b/relast-xml-flush/jastadd_modules
@@ -0,0 +1,10 @@
+module("solve") {
+    jastadd {
+        basedir "src/"
+        include "main/jastadd/**/*.ast"
+        include "main/jastadd/**/*.jadd"
+        include "main/jastadd/**/*.jrag"
+        include "gen/jastadd/**/*.ast"
+        include "gen/jastadd/**/*.jadd"
+    }
+}
diff --git a/relast-xml-flush/libs b/relast-xml-flush/libs
new file mode 120000
index 0000000..8810c45
--- /dev/null
+++ b/relast-xml-flush/libs
@@ -0,0 +1 @@
+../solve/libs
\ No newline at end of file
diff --git a/relast-xml-flush/src/main b/relast-xml-flush/src/main
new file mode 120000
index 0000000..009e6af
--- /dev/null
+++ b/relast-xml-flush/src/main
@@ -0,0 +1 @@
+../../solve/src/main
\ No newline at end of file
diff --git a/relast-xml-flush/src/test b/relast-xml-flush/src/test
new file mode 120000
index 0000000..86aebbf
--- /dev/null
+++ b/relast-xml-flush/src/test
@@ -0,0 +1 @@
+../../solve/src/test
\ No newline at end of file
diff --git a/relast-xml-inc/.gitignore b/relast-xml-inc/.gitignore
new file mode 100644
index 0000000..bef26b5
--- /dev/null
+++ b/relast-xml-inc/.gitignore
@@ -0,0 +1,6 @@
+/src/gen/
+/src/gen-res/
+/build/
+events.txt
+/src/main/jastadd/SocialNetworkGen.ast
+/src/main/jastadd/SocialNetworkGen.jadd
diff --git a/relast-xml-inc/build.gradle b/relast-xml-inc/build.gradle
new file mode 100644
index 0000000..36dae73
--- /dev/null
+++ b/relast-xml-inc/build.gradle
@@ -0,0 +1,19 @@
+buildscript {
+    repositories.mavenCentral()
+    dependencies {
+        classpath group: 'org.jastadd', name: 'jastaddgradle', version: '1.13.3'
+    }
+}
+
+plugins {
+    id 'application'
+    id 'maven'
+    id 'java'
+    id 'idea'
+}
+
+apply from: '../solve/gradle-parts/base.gradle'
+
+apply from: '../solve/gradle-parts/inc-incremental.gradle'
+
+apply from: '../solve/gradle-parts/rel-relast.gradle'
diff --git a/relast-xml-inc/jastadd_modules b/relast-xml-inc/jastadd_modules
new file mode 100644
index 0000000..e126e37
--- /dev/null
+++ b/relast-xml-inc/jastadd_modules
@@ -0,0 +1,10 @@
+module("solve") {
+    jastadd {
+        basedir "src/"
+        include "main/jastadd/**/*.ast"
+        include "main/jastadd/**/*.jadd"
+        include "main/jastadd/**/*.jrag"
+        include "gen/jastadd/**/*.ast"
+        include "gen/jastadd/**/*.jadd"
+    }
+}
diff --git a/relast-xml-inc/libs b/relast-xml-inc/libs
new file mode 120000
index 0000000..8810c45
--- /dev/null
+++ b/relast-xml-inc/libs
@@ -0,0 +1 @@
+../solve/libs
\ No newline at end of file
diff --git a/relast-xml-inc/src/main b/relast-xml-inc/src/main
new file mode 120000
index 0000000..009e6af
--- /dev/null
+++ b/relast-xml-inc/src/main
@@ -0,0 +1 @@
+../../solve/src/main
\ No newline at end of file
diff --git a/relast-xml-inc/src/test b/relast-xml-inc/src/test
new file mode 120000
index 0000000..86aebbf
--- /dev/null
+++ b/relast-xml-inc/src/test
@@ -0,0 +1 @@
+../../solve/src/test
\ No newline at end of file
diff --git a/settings.gradle b/settings.gradle
index 3bb2487..b50f78c 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1 +1,5 @@
 include ':solve'
+include ':relast-xml-flush'
+include ':relast-xml-inc'
+include ':namelookup-xml-flush'
+include ':namelookup-xml-inc'
diff --git a/solve/build.gradle b/solve/build.gradle
index 7918701..36dae73 100644
--- a/solve/build.gradle
+++ b/solve/build.gradle
@@ -12,127 +12,8 @@ plugins {
     id 'idea'
 }
 
-group 'de.tudresden.inf.st'
-version '1.0-SNAPSHOT'
+apply from: '../solve/gradle-parts/base.gradle'
 
-sourceCompatibility = 11
-targetCompatibility = 11
+apply from: '../solve/gradle-parts/inc-incremental.gradle'
 
-repositories {
-    mavenCentral()
-}
-
-apply plugin: 'jastadd'
-
-dependencies {
-    jastadd2 "org.jastadd:jastadd:2.3.5"
-
-    implementation group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.12.3'
-    runtime 'com.sun.xml.bind:jaxb-impl:3.0.0'
-    implementation 'jakarta.xml.bind:jakarta.xml.bind-api:3.0.0'
-    implementation group: 'org.eclipse.emf', name: 'org.eclipse.emf.ecore', version: '2.23.0'
-    implementation group: 'org.eclipse.emf', name: 'org.eclipse.emf.ecore.xmi', version: '2.16.0'
-    implementation group: 'org.eclipse.emf', name: 'org.eclipse.emf.common', version: '2.22.0'
-    implementation group: 'org.eclipse.emf', name: 'org.eclipse.emf.mwe.core', version: '1.6.1'
-
-    testImplementation group: 'junit', name: 'junit', version: junitVersion
-    testImplementation group: 'org.hamcrest', name: 'hamcrest-junit', version: '1.0.0.0'
-    testImplementation 'com.opencsv:opencsv:3.8'
-    testImplementation 'com.github.stefanbirkner:system-rules:1.19.0'
-}
-
-mainClassName = 'de.tudresden.inf.st.ttc18live.LiveContestDriverEMF'
-
-task testMain(type: JavaExec, dependsOn: assemble) {
-    group "application"
-    classpath = sourceSets.test.runtimeClasspath
-    main = 'de.tudresden.inf.st.ttc18live.Main'
-}
-
-task preprocess(type: JavaExec) {
-    group = 'Build'
-    main = "-jar"
-    args = [
-            "libs/relast-compiler.jar",
-            "--grammarName=src/main/jastadd/SocialNetworkGen",
-            "--listClass=java.util.ArrayList",
-            "--useJastAddNames",
-            "--file",
-            "src/main/jastadd/SocialNetwork.relast"
-    ]
-
-    inputs.files file("./src/main/jastadd/SocialNetwork.relast")
-    outputs.files file("./src/main/jastadd/SocialNetworkGen.ast"), file("./src/main/jastadd/SocialNetworkGen.jadd")
-}
-
-jastadd {
-    configureModuleBuild()
-    modules {
-        //noinspection GroovyAssignabilityCheck
-        module("solve") {
-
-//            java {
-//                basedir "src/"
-//                include "main/**/*.java"
-//                include "gen/**/*.java"
-//            }
-
-            jastadd {
-                basedir "src/"
-                include "main/jastadd/**/*.ast"
-                include "main/jastadd/**/*.jadd"
-                include "main/jastadd/**/*.jrag"
-                include "gen/jastadd/**/*.ast"
-                include "gen/jastadd/**/*.jadd"
-                include "gen/jastadd/**/*.jrag"
-            }
-        }
-    }
-
-    cleanGen.doFirst {
-        delete "src/gen/java/de"
-        delete "src/gen-res/BuildInfo.properties"
-    }
-
-//    preprocessParser.doFirst {
-//        args += ["--no-beaver-symbol"]
-//    }
-
-    module = "solve"
-
-    astPackage = 'de.tudresden.inf.st.ttc18live.jastadd.model'
-
-    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',
-            '--cache=all',
-            "--flush=api",
-            "--incremental=param,debug",
-            "--tracing=api",
-    ]
-}
-
-cleanGen.doFirst {
-    delete "src/gen/jastadd"
-}
-
-File genSrc = file("src/gen/java")
-sourceSets.main.java.srcDir genSrc
-idea.module.generatedSourceDirs += genSrc
-
-// Workflow configuration for phases
-generateAst.dependsOn preprocess
-
-// always run tests
-test.outputs.upToDateWhen {false}
-
-// disable distribution
-jar.enabled = false
-distTar.enabled = false
-distZip.enabled=false // always disabled
-packageSources.enabled=false // always disabled
+apply from: '../solve/gradle-parts/rel-relast.gradle'
diff --git a/solve/gradle-parts/base.gradle b/solve/gradle-parts/base.gradle
new file mode 100644
index 0000000..19543bf
--- /dev/null
+++ b/solve/gradle-parts/base.gradle
@@ -0,0 +1,100 @@
+
+group 'de.tudresden.inf.st'
+version '1.0-SNAPSHOT'
+
+sourceCompatibility = 11
+targetCompatibility = 11
+
+repositories {
+    mavenCentral()
+}
+
+apply plugin: 'jastadd'
+
+dependencies {
+    jastadd2 "org.jastadd:jastadd:2.3.5"
+
+    implementation group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.12.3'
+    runtime 'com.sun.xml.bind:jaxb-impl:3.0.0'
+    implementation 'jakarta.xml.bind:jakarta.xml.bind-api:3.0.0'
+    implementation group: 'org.eclipse.emf', name: 'org.eclipse.emf.ecore', version: '2.23.0'
+    implementation group: 'org.eclipse.emf', name: 'org.eclipse.emf.ecore.xmi', version: '2.16.0'
+    implementation group: 'org.eclipse.emf', name: 'org.eclipse.emf.common', version: '2.22.0'
+    implementation group: 'org.eclipse.emf', name: 'org.eclipse.emf.mwe.core', version: '1.6.1'
+
+    testImplementation group: 'junit', name: 'junit', version: junitVersion
+    testImplementation group: 'org.hamcrest', name: 'hamcrest-junit', version: '1.0.0.0'
+    testImplementation 'com.opencsv:opencsv:3.8'
+    testImplementation 'com.github.stefanbirkner:system-rules:1.19.0'
+}
+
+mainClassName = 'de.tudresden.inf.st.ttc18live.LiveContestDriverXml'
+
+jar {
+    manifest {
+        attributes "Main-Class": 'de.tudresden.inf.st.ttc18live.LiveContestDriverXml'
+    }
+
+    from {
+        configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
+    }
+
+    exclude('META-INF/*.SF', 'META-INF/*.DSA', 'META-INF/*.RSA')
+
+    archiveBaseName = 'solve'
+}
+task preprocess(type: JavaExec) {
+    group = 'Build'
+    main = "-jar"
+    args = [
+            "libs/relast-compiler.jar",
+            "--grammarName=src/gen/jastadd/SocialNetworkGen",
+            "--listClass=java.util.ArrayList",
+            "--useJastAddNames",
+            "--file",
+            "src/main/jastadd/SocialNetwork.relast"
+    ]
+
+    inputs.files file("./src/main/jastadd/SocialNetwork.relast")
+    outputs.files file("./src/main/jastadd/SocialNetworkGen.ast"), file("./src/main/jastadd/SocialNetworkGen.jadd")
+}
+
+jastadd {
+    configureModuleBuild()
+    modules "jastadd_modules"
+
+    cleanGen.doFirst {
+        delete "src/gen/java/de"
+        delete "src/gen-res/BuildInfo.properties"
+    }
+
+    module = "solve"
+    astPackage = 'de.tudresden.inf.st.ttc18live.jastadd.model'
+    genDir = 'src/gen/java'
+    buildInfoDir = 'src/gen-res'
+
+    // default options are: '--rewrite=cnta', '--safeLazy', '--visitCheck=false', '--cacheCycle=false'
+    extraJastAddOptions = [
+            '--lineColumnNumbers',
+            '--cache=all',
+            "--flush=api",
+            "--incremental=param,debug",
+            "--tracing=api",
+    ]
+}
+
+cleanGen.doFirst {
+    delete "src/gen/jastadd"
+}
+
+File genSrc = file("src/gen/java")
+sourceSets.main.java.srcDir genSrc
+idea.module.generatedSourceDirs += genSrc
+
+// always run tests
+test.outputs.upToDateWhen {false}
+
+// disable distribution
+distTar.enabled = false
+distZip.enabled=false // always disabled
+packageSources.enabled=false // always disabled
diff --git a/solve/gradle-parts/inc-flush.gradle b/solve/gradle-parts/inc-flush.gradle
new file mode 100644
index 0000000..e69de29
diff --git a/solve/gradle-parts/inc-incremental.gradle b/solve/gradle-parts/inc-incremental.gradle
new file mode 100644
index 0000000..e69de29
diff --git a/solve/gradle-parts/rel-namelookup.gradle b/solve/gradle-parts/rel-namelookup.gradle
new file mode 100644
index 0000000..e69de29
diff --git a/solve/gradle-parts/rel-relast.gradle b/solve/gradle-parts/rel-relast.gradle
new file mode 100644
index 0000000..d03416b
--- /dev/null
+++ b/solve/gradle-parts/rel-relast.gradle
@@ -0,0 +1 @@
+generateAst.dependsOn preprocess
diff --git a/solve/jastadd_modules b/solve/jastadd_modules
index 5e0b848..e126e37 100644
--- a/solve/jastadd_modules
+++ b/solve/jastadd_modules
@@ -1,15 +1,10 @@
-module("pe") {
-
-	java {
-		basedir "src/main/java/"
-		include "**/*.java"
-	}
-
-	jastadd {
-		basedir "src/main/jastadd/"
-		include "**/*.ast"
-		include "**/*.jadd"
-		include "**/*.jrag"
-	}
-
+module("solve") {
+    jastadd {
+        basedir "src/"
+        include "main/jastadd/**/*.ast"
+        include "main/jastadd/**/*.jadd"
+        include "main/jastadd/**/*.jrag"
+        include "gen/jastadd/**/*.ast"
+        include "gen/jastadd/**/*.jadd"
+    }
 }
diff --git a/solve/src/main/jastadd/NTA.jrag b/solve/src/main/jastadd/NTA.jrag
index f55db69..78f84cd 100644
--- a/solve/src/main/jastadd/NTA.jrag
+++ b/solve/src/main/jastadd/NTA.jrag
@@ -2,4 +2,4 @@ aspect NTA {
   inh Post Comment.getPost();
   eq Post.getComment().getPost() = this;
   eq ModelChangeSet.getPendingNewElement().getPost() = null;
-}
\ No newline at end of file
+}
diff --git a/solve/src/main/jastadd/Refs.jadd.unused b/solve/src/main/namelookup-jastadd/Refs.jadd
similarity index 100%
rename from solve/src/main/jastadd/Refs.jadd.unused
rename to solve/src/main/namelookup-jastadd/Refs.jadd
diff --git a/solve/src/main/jastadd/SocialNetworkNamelookup.ast.unused b/solve/src/main/namelookup-jastadd/SocialNetworkNamelookup.ast
similarity index 100%
rename from solve/src/main/jastadd/SocialNetworkNamelookup.ast.unused
rename to solve/src/main/namelookup-jastadd/SocialNetworkNamelookup.ast
diff --git a/time-q1.sh b/time-q1.sh
new file mode 100755
index 0000000..67987dc
--- /dev/null
+++ b/time-q1.sh
@@ -0,0 +1,2 @@
+# ./gradlew installDist
+time ChangeSet=$1 ChangePath=solve/src/test/resources/models/$1/ Sequences=20 Query=Q1 java -jar solve/build/libs/solve-1.0-SNAPSHOT.jar
-- 
GitLab