Skip to content
Snippets Groups Projects
Select Git revision
  • 4ae56a96cf82afac7f2722871a136dfff6c3bc9b
  • master default
  • johannes/feature/noetic
3 results

docker-run.sh

  • build.gradle 3.91 KiB
    plugins {
        id 'java'
        id 'org.jastadd'
        id 'application'
        id 'idea'
    }
    
    ext {
        mainClassName = 'org.jastadd.preprocessor.Main'
    }
    
    // set the main class name for `gradle run`
    application.mainClassName = "${mainClassName}"
    
    repositories {
        jcenter()
    }
    
    dependencies {
        implementation project(':relast.preprocessor')
        testImplementation testFixtures(project(":relast.preprocessor"))
    }
    
    project.version = "0.2.0"
    
    sourceSets {
        main {
            java.srcDir "src/gen/java"
        }
    }
    
    test {
        useJUnitPlatform()
    
        maxHeapSize = '1G'
    }
    
    jar {
        manifest {
            attributes "Main-Class": "${mainClassName}"
        }
    
        from {
            configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
        }
    }
    
    // Input and output files for relast
    def relastInputFiles = [
            "relast.preprocessor/src/main/jastadd/RelAst.relast",
            "relast.preprocessor/src/main/jastadd/mustache/Mustache.relast"
    ]
    def relastOutputFiles = [
            "src/gen/jastadd/RelAst.ast",
            "src/gen/jastadd/RelAst.jadd",
            "src/gen/jastadd/RelAstRefResolver.jadd",
            "src/gen/jastadd/RelAstResolverStubs.jrag"
    ]
    
    
    task relast(type: JavaExec) {
        classpath = files("relast.preprocessor/libs/relast.jar")
        group = 'Build'
    
        doFirst {
            delete relastOutputFiles
            mkdir "src/gen/jastadd/"
        }
    
        args = [
                "--listClass=java.util.ArrayList",
                "--jastAddList=JastAddList",
                "--useJastAddNames",
                "--file",
                "--resolverHelper",
                "--grammarName=./src/gen/jastadd/RelAst"
        ] + relastInputFiles
    
        inputs.files relastInputFiles
        outputs.files relastOutputFiles
    }
    
    jastadd {
        configureModuleBuild()
        modules {
            //noinspection GroovyAssignabilityCheck
            module("Preprocessor") {
    
                jastadd {
                    basedir "."
                    include "relast.preprocessor/src/main/jastadd/**/*.ast"
                    include "relast.preprocessor/src/main/jastadd/**/*.jadd"
                    include "relast.preprocessor/src/main/jastadd/**/*.jrag"
                    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 "relast.preprocessor/src/main/jastadd/scanner/Header.flex",         [-4]
                    include "relast.preprocessor/src/main/jastadd/scanner/Preamble.flex",       [-3]
                    include "relast.preprocessor/src/main/jastadd/scanner/Macros.flex",         [-2]
                    include "relast.preprocessor/src/main/jastadd/scanner/RulesPreamble.flex",  [-1]
                    include "relast.preprocessor/src/main/jastadd/scanner/Keywords.flex",       [ 0]
                    include "relast.preprocessor/src/main/jastadd/scanner/Symbols.flex",        [ 1]
                    include "relast.preprocessor/src/main/jastadd/scanner/RulesPostamble.flex", [ 2]
                }
    
                parser {
                    include "relast.preprocessor/src/main/jastadd/parser/Preamble.parser"
                    include "relast.preprocessor/src/main/jastadd/parser/RelAst.parser"
                }
            }
        }
    
        cleanGen.doFirst {
            delete "src/gen"
            delete "src/gen-res"
        }
    
        preprocessParser.doFirst {
            args += ["--no-beaver-symbol"]
        }
    
        module = "Preprocessor"
    
        astPackage = 'org.jastadd.relast.ast'
    
        parser.name = 'RelAstParser'
    
        genDir = 'src/gen/java'
    
        buildInfoDir = 'src/gen-res'
    
        scanner.genDir = "src/gen/java/org/jastadd/relast/scanner"
        parser.genDir = "src/gen/java/org/jastadd/relast/parser"
    
        jastaddOptions = ["--lineColumnNumbers", "--List=JastAddList", "--safeLazy", "--visitCheck=true", "--rewrite=cnta", "--cache=all"]
    }
    
    clean.dependsOn(cleanGen)
    
    generateAst.dependsOn relast