apply plugin: 'java' apply plugin: 'jastadd' apply plugin: 'application' apply plugin: "idea" sourceCompatibility = 1.8 mainClassName = 'org.jastadd.ros2rag.compiler.Compiler' repositories { jcenter() } buildscript { repositories.jcenter() dependencies { classpath 'org.jastadd:jastaddgradle:1.13.3' } } dependencies { testImplementation 'org.junit.jupiter:junit-jupiter-api:5.4.0' testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.4.0' testCompile 'org.assertj:assertj-core:3.12.1' compile 'com.fasterxml.jackson.core:jackson-core:2.9.8' compile 'com.fasterxml.jackson.core:jackson-databind:2.9.8' compile 'org.jastadd:jastadd:2.3.4' runtime 'org.jastadd:jastadd:2.3.4' compile group: 'net.sf.beaver', name: 'beaver-rt', version: '0.9.11' } sourceSets { main { java.srcDir "src/gen/java" } } test { useJUnitPlatform() maxHeapSize = '1G' } jar { manifest { attributes "Main-Class": 'org.jastadd.ros2rag.compiler.Compiler' } from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } } } task relast(type: JavaExec) { group = 'Build' main = "-jar" doFirst { delete "src/gen/jastadd/*.ast" delete "src/gen/jastadd/Ros2Rag.jadd" delete "src/gen/jastadd/Ros2RagRefResolver.jadd" delete "src/gen/jastadd/Ros2RagResolverStubs.jrag" mkdir "src/gen/jastadd/" } args = [ "../libs/relast.jar", "./src/main/jastadd/RelAst.relast", "./src/main/jastadd/Ros2Rag.relast", "--listClass=java.util.ArrayList", "--jastAddList=JastAddList", "--useJastAddNames", "--file", "--resolverHelper", "--grammarName=./src/gen/jastadd/Ros2Rag" ] inputs.files file("../libs/relast.jar"), file("src/main/jastadd/RelAST.relast"), file("src/main/jastadd/Ros2Rag.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') } jastadd { configureModuleBuild() modules { //noinspection GroovyAssignabilityCheck module("Ros2Rag") { java { basedir "." include "src/main/**/*.java" include "src/gen/**/*.java" } jastadd { basedir "." include "src/main/jastadd/**/*.ast" include "src/main/jastadd/**/*.jadd" include "src/main/jastadd/**/*.jrag" include "src/gen/jastadd/**/*.ast" include "src/gen/jastadd/**/*.jadd" include "src/gen/jastadd/**/*.jrag" } scanner { include "src/main/jastadd/Ros2Rag.flex" } parser { include "src/main/jastadd/Preamble.parser" include "src/main/jastadd/RelAst.parser" include "src/main/jastadd/Ros2Rag.parser" } } } cleanGen.doFirst { delete "src/gen/java/org" delete "src/gen-res/BuildInfo.properties" } preprocessParser.doFirst { args += ["--no-beaver-symbol"] } module = "Ros2Rag" astPackage = 'org.jastadd.ros2rag.ast' parser.name = 'Ros2RagParser' 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", "--List=JastAddList", "--safeLazy", "--visitCheck=true", "--rewrite=cnta", "--cache=all"] } generateAst.dependsOn relast