diff --git a/.gitignore b/.gitignore index 63f236cd2623aed0ea8a512c6829b2c24d6fc7e6..1e36626d306f081a5319e89e9214bc182fcc2a7b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ *.jar !gradle/wrapper/gradle-wrapper.jar +!libs/*.jar .project .classpath .idea/ diff --git a/build.gradle b/build.gradle index ecfc52fd2186d1d1a436d97e7d54dadec4d81733..9edf6be656d042436ded4bdb2787e1b1487f8ad9 100644 --- a/build.gradle +++ b/build.gradle @@ -55,6 +55,37 @@ jar { } } +task preprocess(type: JavaExec) { + group = 'Build' + main = "-jar" + + doFirst { + delete "./src/gen/jastadd/*.ast" + delete "./src/gen/jastadd/RelAst.jadd" + delete "./src/gen/jastadd/RelAstRefResolver.jadd" + delete "./src/gen/jastadd/RelAstResolverStubs.jrag" + mkdir "src/gen/jastadd/" + } + + args = [ + "libs/relast.jar", + "./src/main/jastadd/RelAst.relast", + "--listClass=java.util.ArrayList", + "--jastAddList=JastAddList", + "--useJastAddNames", + "--file", + "--resolverHelper", + "--grammarName=./src/gen/jastadd/RelAST" + ] + + inputs.files file("./src/main/jastadd/RelAST.relast"), + file("./libs/relast.jar") + outputs.files file("./src/gen/jastadd/RelAst.ast"), + file("./src/gen/jastadd/RelAst.jadd"), + file("./src/gen/jastadd/RelAstRefResolver.jadd"), + file('./src/gen/jastadd/RelAstResolverStubs.jrag') +} + jastadd { configureModuleBuild() modules { @@ -68,10 +99,13 @@ jastadd { } jastadd { - basedir "src/main/jastadd/" - include "**/*.ast" - include "**/*.jadd" - include "**/*.jrag" + 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 { @@ -112,3 +146,4 @@ jastadd { jastaddOptions = ["--lineColumnNumbers", "--safeLazy", "--visitCheck=true", "--rewrite=cnta", "--cache=all"] } +generateAst.dependsOn preprocess diff --git a/libs/relast.jar b/libs/relast.jar new file mode 100644 index 0000000000000000000000000000000000000000..a3430dfc1754b92676e2beb6b9f8ce4f1bb4429f Binary files /dev/null and b/libs/relast.jar differ diff --git a/src/main/jastadd/RelAst.ast b/src/main/jastadd/RelAst.relast similarity index 100% rename from src/main/jastadd/RelAst.ast rename to src/main/jastadd/RelAst.relast