Skip to content
Snippets Groups Projects
Commit 39f9acc8 authored by René Schöne's avatar René Schöne
Browse files

Split project into base and example.

parent 5129f322
Branches
No related tags found
No related merge requests found
Pipeline #6218 failed
Showing
with 302 additions and 0 deletions
build
src/gen-res/
src/gen/
out/
*.class
apply plugin: 'jastadd'
apply plugin: 'application'
sourceCompatibility = 1.8
mainClassName = 'de.tudresden.inf.st.ros2rag.example.Main'
repositories {
jcenter()
}
buildscript {
repositories.jcenter()
dependencies {
classpath 'org.jastadd:jastaddgradle:1.13.3'
}
}
sourceSets.main.java.srcDir "src/gen/java"
jar.manifest.attributes('Main-Class': 'de.tudresden.inf.st.ros2rag.Main')
dependencies {
implementation group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-xml', version: "${jackson_version}"
implementation group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: "${jackson_version}"
implementation group: 'net.sf.beaver', name: 'beaver-rt', version: '0.9.11'
jastadd2 "org.jastadd:jastadd:2.3.4"
}
test {
useJUnitPlatform()
maxHeapSize = '1G'
}
jastadd {
configureModuleBuild()
modules {
//noinspection GroovyAssignabilityCheck
module("ros2rag example") {
java {
basedir "src/"
include "main/**/*.java"
include "gen/**/*.java"
}
jastadd {
basedir "src/"
include "main/jastadd/**/*.ast"
include "main/jastadd/**/*.jadd"
include "main/jastadd/**/*.jrag"
include "gen/jastadd/**/*.ast"
include "gen/jastadd/**/*.jadd"
include "gen/jastadd/**/*.jrag"
}
// scanner {
// include "src/main/jastadd/RelAst.flex"
// }
// parser {
// include "src/main/jastadd/Preamble.parser"
// include "src/main/jastadd/RelAst.parser"
// }
}
}
cleanGen.doFirst {
delete "src/gen/java/org"
delete "src/gen-res/BuildInfo.properties"
}
preprocessParser.doFirst {
args += ["--no-beaver-symbol"]
}
module = "ros2rag example"
astPackage = 'de.tudresden.inf.st.ros2rag.ast'
// parser.name = 'RelAstParser'
genDir = 'src/gen/java'
buildInfoDir = 'src/gen-res'
// scanner.genDir = "src/gen/java/org/jastadd/ros2rag/scanner"
// parser.genDir = "src/gen/java/org/jastadd/ros2rag/parser"
// jastaddOptions = ["--lineColumnNumbers", "--visitCheck=true", "--rewrite=cnta", "--cache=all"]
// default options are: '--rewrite=cnta', '--safeLazy', '--visitCheck=false', '--cacheCycle=false'
extraJastAddOptions = ["--lineColumnNumbers", '--List=JastAddList']
}
// Input files
def relastFiles = ["./src/main/jastadd/Example.relast"]
// phase: RelAst -> JastAdd
task relastToJastAdd(type: JavaExec) {
group = 'Build'
main = "-jar"
args(["../libs/relast.jar",
"--grammarName=./src/gen/jastadd/model",
"--useJastAddNames",
"--listClass=ArrayList",
"--jastAddList=JastAddList",
"--resolverHelper",
"--file"]
+
relastFiles)
inputs.files relastFiles
outputs.files file("./src/gen/jastadd/model.ast"), file("./src/gen/jastadd/model.jadd")
}
// Workflow configuration for phases
generateAst.dependsOn relastToJastAdd
// General configuration (plugins, settings, dependencies)
buildscript {
repositories.mavenLocal()
repositories.mavenCentral()
dependencies {
classpath group: 'org.jastadd', name: 'jastaddgradle', version: '1.13.3'
}
}
plugins {
id 'java'
id 'application'
id 'idea'
id 'jacoco'
}
apply plugin: 'jastadd'
group 'de.tudresden.inf.st'
version '0.1'
sourceCompatibility = 1.8
repositories.mavenCentral()
idea.module.generatedSourceDirs += file('src/gen/java')
configurations {
ragdoc
}
sourceSets.main.java.srcDir "src/gen/java"
jar.manifest.attributes('Main-Class': 'de.tudresden.inf.st.hybridpps.Main')
dependencies {
implementation group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-xml', version: "${jackson_version}"
implementation group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: "${jackson_version}"
implementation group: 'net.sf.beaver', name: 'beaver-rt', version: '0.9.11'
jastadd2 "org.jastadd:jastadd:2.3.4"
ragdoc files('../libs/rd-builder.jar')
}
test {
testLogging {
events "passed", "skipped", "failed"
exceptionFormat "full"
}
}
jacocoTestReport {
reports {
xml.enabled true
html.enabled false
}
}
run {
mainClassName = 'de.tudresden.inf.st.hybridpps.Main'
// standardInput = System.in
}
run.enabled = false
// Input files
def relastFiles = ["./src/main/jastadd/problem.relast", "./src/main/jastadd/solution.relast"]
// phase: RelAst -> JastAdd
task relastToJastAdd(type: JavaExec) {
group = 'Build'
main = "-jar"
args(["../libs/relast.jar",
"--grammarName=./src/gen/jastadd/model",
"--useJastAddNames",
"--listClass=ArrayList",
"--jastAddList=JastAddList",
"--resolverHelper",
"--file"]
+
relastFiles)
inputs.files relastFiles
outputs.files file("./src/gen/jastadd/model.ast"), file("./src/gen/jastadd/model.jadd")
}
// phase: JastAdd -> Java (using JastAdd Gradle plugin)
jastadd {
configureModuleBuild()
modules {
module("hybridpps") {
java {
basedir "src/"
include "main/**/*.java"
include "gen/**/*.java"
}
jastadd {
basedir "src/"
include "main/jastadd/**/*.ast"
include "main/jastadd/**/*.jadd"
include "main/jastadd/**/*.jrag"
include "gen/jastadd/**/*.ast"
include "gen/jastadd/**/*.jadd"
include "gen/jastadd/**/*.jrag"
}
scanner {
include "src/main/jastadd/HybridPPSModelScanner.flex"
}
parser {
include "src/main/jastadd/HybridPPSModelParser.parser"
}
}
}
cleanGen.doFirst {
delete "src/gen/java/de"
delete "src/gen-res/BuildInfo.properties"
}
module = "hybridpps"
astPackage = 'de.tudresden.inf.st.hybridpps.jastadd.model'
parser.name = 'HybridPPSModelParser'
genDir = 'src/gen/java'
buildInfoDir = 'src/gen-res'
scanner.genDir = "src/gen/java/de/tudresden/inf/st/hybridpps/jastadd/scanner"
parser.genDir = "src/gen/java/de/tudresden/inf/st/hybridpps/jastadd/parser"
// default options are: '--rewrite=cnta', '--safeLazy', '--visitCheck=false', '--cacheCycle=false'
extraJastAddOptions = ['--List=JastAddList']
}
// Workflow configuration for phases
generateAst.dependsOn relastToJastAdd
//// always run jastadd
//jastadd.outputs.upToDateWhen {false}
Model ::= RobotArm ZoneModel ;
ZoneModel ::= Size:Position SafetyZone:Zone*;
Zone ::= Position*;
// Do not use terminal-NTA's for now, as relast has problems with it "/<ShouldUseLowSpeed:Boolean>/" ;
RobotArm ::= Joint* EndEffector ;
Joint ::= <Name> ;
rel Joint.CurrentPosition -> Position ;
EndEffector : Joint;
Position ::= <x:int> <y:int> <z:int> ;
package de.tudresden.inf.st.ros2rag.example;
/**
* Testing Ros2Rag without generating something.
*
* @author rschoene - Initial contribution
*/
public class Main {
public static void main(String[] args) {
System.out.println("Hello");
}
}
rootProject.name = 'ros2rag'
include 'ros2rag.base'
include 'ros2rag.example'
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment