Skip to content

Commit 9d1442e

Browse files
feat: JavaCC-8
- without syntactic Lookahead - `Node` replaces `SimpleNode` - removed incompatible `KeywordUtils` - updated `SimpleCharStream` Signed-off-by: Andreas Reichel <[email protected]>
1 parent 5abcaea commit 9d1442e

File tree

14 files changed

+236
-488
lines changed

14 files changed

+236
-488
lines changed

build.gradle

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -114,10 +114,18 @@ dependencies {
114114
xmlDoclet 'com.manticore-projects.tools:xml-doclet:+'
115115

116116
// enforce latest version of JavaCC
117-
testImplementation 'net.java.dev.javacc:javacc:+'
118-
javacc 'net.java.dev.javacc:javacc:+'
119-
120-
117+
testImplementation('org.javacc:core:8.1.0-SNAPSHOT') { changing = true }
118+
testImplementation('org.javacc.generator:java:8.1.0-SNAPSHOT') { changing = true }
119+
javacc('org.javacc:core:8.1.0-SNAPSHOT') { changing = true }
120+
javacc('org.javacc.generator:java:8.1.0-SNAPSHOT') { changing = true }
121+
}
122+
configurations.configureEach {
123+
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
124+
if (details.requested.group in ['org.javacc:core', 'org.javacc.generator']) {
125+
// Check for updates every build
126+
resolutionStrategy.cacheChangingModulesFor 30, 'seconds'
127+
}
128+
}
121129
}
122130

123131
compileJavacc {

pom.xml

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,16 @@
2727
<dependencies>
2828
<!-- needed for parsing the Keywords via JTree in ParserKeywordsUtils -->
2929
<dependency>
30-
<groupId>net.java.dev.javacc</groupId>
31-
<artifactId>javacc</artifactId>
32-
<version>[7.0.13,)</version>
33-
<scope>test</scope>
30+
<groupId>org.javacc</groupId>
31+
<artifactId>core</artifactId>
32+
<version>8.1.0-SNAPSHOT</version>
33+
<type>pom</type>
34+
</dependency>
35+
<dependency>
36+
<groupId>org.javacc.generator</groupId>
37+
<artifactId>java</artifactId>
38+
<version>8.1.0-SNAPSHOT</version>
39+
<type>pom</type>
3440
</dependency>
3541
<dependency>
3642
<groupId>commons-io</groupId>
@@ -59,7 +65,7 @@
5965
<dependency>
6066
<groupId>org.assertj</groupId>
6167
<artifactId>assertj-core</artifactId>
62-
<version>[3.25.3,)</version>
68+
<version>3.25.3</version>
6369
<scope>test</scope>
6470
</dependency>
6571
<dependency>
@@ -216,17 +222,20 @@
216222
<goal>jjtree-javacc</goal>
217223
</goals>
218224
<configuration>
219-
<grammarEncoding>UTF-8</grammarEncoding>
220-
<isStatic>false</isStatic>
221-
<jdkVersion>1.8</jdkVersion>
225+
<codeGenerator>java</codeGenerator>
222226
</configuration>
223227
</execution>
224228
</executions>
225229
<dependencies>
226230
<dependency>
227-
<groupId>net.java.dev.javacc</groupId>
228-
<artifactId>javacc</artifactId>
229-
<version>[7.0.13,)</version>
231+
<groupId>org.javacc.generator</groupId>
232+
<artifactId>java</artifactId>
233+
<version>8.0.1</version>
234+
</dependency>
235+
<dependency>
236+
<groupId>org.javacc</groupId>
237+
<artifactId>core</artifactId>
238+
<version>8.0.1</version>
230239
</dependency>
231240
</dependencies>
232241
</plugin>

src/main/java/net/sf/jsqlparser/expression/DateTimeLiteralExpression.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public <T, S> T accept(ExpressionVisitor<T> expressionVisitor, S context) {
3939

4040
@Override
4141
public String toString() {
42-
return type.name() + " " + value;
42+
return type!=null ? type.name() + " " + value : value;
4343
}
4444

4545
public DateTimeLiteralExpression withValue(String value) {

src/main/java/net/sf/jsqlparser/expression/operators/relational/ExpressionList.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
import net.sf.jsqlparser.expression.Expression;
1313
import net.sf.jsqlparser.expression.ExpressionVisitor;
14-
import net.sf.jsqlparser.parser.SimpleNode;
14+
import net.sf.jsqlparser.parser.Node;
1515

1616
import java.io.Serializable;
1717
import java.util.ArrayList;
@@ -24,7 +24,7 @@
2424
*/
2525
public class ExpressionList<T extends Expression> extends ArrayList<T>
2626
implements Expression, Serializable {
27-
private transient SimpleNode node;
27+
private transient Node node;
2828

2929
public ExpressionList(Collection<? extends T> expressions) {
3030
addAll(expressions);
@@ -96,12 +96,12 @@ public String toString() {
9696

9797

9898
@Override
99-
public SimpleNode getASTNode() {
99+
public Node getASTNode() {
100100
return node;
101101
}
102102

103103
@Override
104-
public void setASTNode(SimpleNode node) {
104+
public void setASTNode(Node node) {
105105
this.node = node;
106106
}
107107

src/main/java/net/sf/jsqlparser/parser/ASTNodeAccess.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
public interface ASTNodeAccess extends Serializable {
1515

16-
SimpleNode getASTNode();
16+
Node getASTNode();
1717

18-
void setASTNode(SimpleNode node);
18+
void setASTNode(Node node);
1919
}

src/main/java/net/sf/jsqlparser/parser/ASTNodeAccessImpl.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,26 +14,26 @@
1414

1515
public class ASTNodeAccessImpl implements ASTNodeAccess {
1616

17-
private transient SimpleNode node;
17+
private transient Node node;
1818

1919
@Override
20-
public SimpleNode getASTNode() {
20+
public Node getASTNode() {
2121
return node;
2222
}
2323

2424
@Override
25-
public void setASTNode(SimpleNode node) {
25+
public void setASTNode(Node node) {
2626
this.node = node;
2727
}
2828

2929
public StringBuilder appendTo(StringBuilder builder) {
3030
// don't add spaces around the following punctuation
3131
final Set<String> punctuation = new TreeSet<>(Set.of(".", "[", "]"));
3232

33-
SimpleNode simpleNode = getASTNode();
34-
if (simpleNode != null) {
35-
Token token = simpleNode.jjtGetFirstToken();
36-
Token lastToken = simpleNode.jjtGetLastToken();
33+
Node Node = getASTNode();
34+
if (Node != null) {
35+
Token token = Node.jjtGetFirstToken();
36+
Token lastToken = Node.jjtGetLastToken();
3737
Token prevToken = null;
3838
while (token.next != null && token.absoluteEnd <= lastToken.absoluteEnd) {
3939
if (!punctuation.contains(token.image)
@@ -49,18 +49,18 @@ public StringBuilder appendTo(StringBuilder builder) {
4949
}
5050

5151
public ASTNodeAccess getParent() {
52-
SimpleNode parent = (SimpleNode) node.jjtGetParent();
52+
Node parent = (Node) node.jjtGetParent();
5353
while (parent.jjtGetValue() == null) {
54-
parent = (SimpleNode) parent.jjtGetParent();
54+
parent = (Node) parent.jjtGetParent();
5555
}
5656

5757
return ASTNodeAccess.class.cast(parent.jjtGetValue());
5858
}
5959

6060
public <T extends ASTNodeAccess> T getParent(Class<T> clazz) {
61-
SimpleNode parent = (SimpleNode) node.jjtGetParent();
61+
Node parent = (Node) node.jjtGetParent();
6262
while (parent.jjtGetValue() == null || !clazz.isInstance(parent.jjtGetValue())) {
63-
parent = (SimpleNode) parent.jjtGetParent();
63+
parent = (Node) parent.jjtGetParent();
6464
}
6565

6666
return clazz.cast(parent.jjtGetValue());

0 commit comments

Comments
 (0)