Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 193ca78

Browse files
committed
update antlr3 to antlr4
1 parent fc04d63 commit 193ca78

23 files changed

Lines changed: 3057 additions & 3192 deletions

CHANGES.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ Changes for Crate
55
Unreleased
66
==========
77

8+
- Upgraded the parser from ANTLR3 to ANTLR4.
9+
810
- Fixed an issue that causes an error to be thrown if nested method
911
calls are used in ``HAVING`` clause.
1012
e.g.: `having sum(power(power(id, id), id)) > 1`

gradle/version.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# crate and components deps
22
guava=18.0
3-
antlr=3.5.2
3+
antlr=4.5.3
44
jodatime=2.9.5
55
commonscli=1.3.1
66
commonsmath=3.6.1

sql-parser/.gitignore

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,2 @@
11
/build/
2-
*.tokens
3-
/src/main/java/io/crate/sql/parser/StatementLexer.java
4-
/src/main/java/io/crate/sql/parser/StatementParser.java
5-
/src/main/java/io/crate/sql/parser/StatementBuilder.java
2+
src/main/java/io/crate/sql/parser/antlr/

sql-parser/build.gradle

Lines changed: 25 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -2,46 +2,43 @@ apply from: "$rootDir/gradle/javaModule.gradle"
22

33
archivesBaseName = '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+
511
configurations {
6-
antlr3
12+
antlr4
713
}
814

915
dependencies {
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-
4542
test {
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+
5960
clean {
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

Comments
 (0)