@@ -2,46 +2,43 @@ apply from: "$rootDir/gradle/javaModule.gradle"
22
33archivesBaseName = ' crate-sql-parser'
44
5+ ext. antlr = [
6+ source : " src/main/antlr" ,
7+ output : " src/main/java/io/crate/sql/parser/antlr/v4" ,
8+ package : ' io.crate.sql.parser.antlr.v4'
9+ ]
10+
511configurations {
6- antlr3
12+ antlr4
713}
814
915dependencies {
16+ antlr4 " org.antlr:antlr4:${ versions.antlr} "
17+ compile " org.antlr:antlr4-runtime:${ versions.antlr} "
18+
1019 compile " com.google.code.findbugs:jsr305:${ versions.jsr305} "
1120 compile " joda-time:joda-time:${ versions.jodatime} "
1221 compile " com.google.guava:guava:${ versions.guava} "
13- compile " org.antlr:antlr-runtime:${ versions.antlr} "
1422
15- antlr3 " org.antlr:antlr:${ versions.antlr} "
1623 testCompile " org.hamcrest:hamcrest-all:${ versions.hamcrest} "
1724 testCompile " junit:junit:${ versions.junit} "
1825}
1926
20- task generateWithANTLR3 (type : Exec ) {
21- String outputPath = ' src/main/java/io/crate/sql/parser' ;
22- ext. parserOutputFiles = files(
23- ' src/main/java/io/crate/sql/parser/StatementLexer.java' ,
24- ' src/main/java/io/crate/sql/parser/StatementParser.java' ,
25- ' src/main/java/io/crate/sql/parser/StatementBuilder.java' ,
26- ' src/main/java/io/crate/sql/parser/Statement.tokens' ,
27- ' src/main/java/io/crate/sql/parser/StatementBuilder.tokens'
28- )
29- ext. parserInputFiles = files(
30- ' src/main/java/io/crate/sql/parser/Statement.g' ,
31- ' src/main/java/io/crate/sql/parser/StatementBuilder.g'
32- )
27+ task antlrOutputDir << {
28+ mkdir(antlr. output)
29+ }
3330
34- inputs. files(ext. parserInputFiles)
35- outputs. files(ext. parserOutputFiles)
31+ task generateGrammarSource (dependsOn : antlrOutputDir, type : JavaExec ) {
32+ inputs. dir file(antlr. source)
33+ outputs. dir file(antlr. output)
3634
37- commandLine = [' java' , ' -cp' , configurations. antlr3. getAsPath(), ' org.antlr.Tool' , ' -o' , outputPath] + ext. parserInputFiles
38- }
35+ def grammars = fileTree(antlr. source). include(' **/*.g4' )
3936
40- tasks. withType(JavaCompile ) {
41- it. dependsOn generateWithANTLR3
37+ main = ' org.antlr.v4.Tool'
38+ classpath = configurations. antlr4
39+ args = [" -o" , " ${ antlr.output} " , " -visitor" , " -package" , antlr. package, grammars. files]. flatten()
4240}
4341
44-
4542test {
4643 // show standard out and standard error of the test JVM(s) on the console
4744 testLogging. showStandardStreams = true
@@ -56,12 +53,10 @@ test {
5653 }
5754}
5855
56+ tasks. withType(JavaCompile ) {
57+ it. dependsOn generateGrammarSource
58+ }
59+
5960clean {
60- doLast {
61- generateWithANTLR3. ext. parserOutputFiles. each {
62- it. delete()
63- }
64- file(' Statement.tokens' ). delete()
65- file(' StatementBuilder.tokens' ). delete()
66- }
61+ delete antlr. output
6762}
0 commit comments