Skip to content

Commit 514f258

Browse files
tomershaywumpz
authored andcommitted
Linking structures to their AST nodes to have access to their positions (#534)
* Linking several structures to their AST nodes to have access to their positions This far there were only 3 types of structures linked to their AST nodes. Now adding some more expressions and literals to their AST node to have access to their token's position in the query. * Added missing parts in JSQqlParserCC.jjt for AST linking to work Added missing parts in JSQqlParserCC.jjt to make sure all relevant code is created to generate and link AST nodes to the relevant structures.
1 parent b1abc6f commit 514f258

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+142
-60
lines changed

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,10 @@
2121
*/
2222
package net.sf.jsqlparser.expression;
2323

24+
import net.sf.jsqlparser.parser.ASTNodeAccessImpl;
2425
import net.sf.jsqlparser.statement.select.SubSelect;
2526

26-
public class AllComparisonExpression implements Expression {
27+
public class AllComparisonExpression extends ASTNodeAccessImpl implements Expression {
2728

2829
private final SubSelect subSelect;
2930

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
*/
2222
package net.sf.jsqlparser.expression;
2323

24+
import net.sf.jsqlparser.parser.ASTNodeAccessImpl;
2425
import net.sf.jsqlparser.statement.select.OrderByElement;
2526

2627
import java.util.List;
@@ -35,7 +36,7 @@
3536
*
3637
* @author tw
3738
*/
38-
public class AnalyticExpression implements Expression {
39+
public class AnalyticExpression extends ASTNodeAccessImpl implements Expression {
3940

4041
private ExpressionList partitionExpressionList;
4142
private List<OrderByElement> orderByElements;

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,15 @@
2121
*/
2222
package net.sf.jsqlparser.expression;
2323

24+
import net.sf.jsqlparser.parser.ASTNodeAccessImpl;
2425
import net.sf.jsqlparser.statement.select.SubSelect;
2526

2627
/**
2728
* Combines ANY and SOME expressions.
2829
*
2930
* @author toben
3031
*/
31-
public class AnyComparisonExpression implements Expression {
32+
public class AnyComparisonExpression extends ASTNodeAccessImpl implements Expression {
3233

3334
private final SubSelect subSelect;
3435
private final AnyType anyType;

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,13 @@
2121
*/
2222
package net.sf.jsqlparser.expression;
2323

24+
import net.sf.jsqlparser.parser.ASTNodeAccessImpl;
25+
2426
/**
2527
* A basic class for binary expressions, that is expressions having a left member and a right member
2628
* which are in turn expressions.
2729
*/
28-
public abstract class BinaryExpression implements Expression {
30+
public abstract class BinaryExpression extends ASTNodeAccessImpl implements Expression {
2931

3032
private Expression leftExpression;
3133
private Expression rightExpression;

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323

2424
import java.util.List;
2525

26+
import net.sf.jsqlparser.parser.ASTNodeAccessImpl;
2627
import net.sf.jsqlparser.statement.select.PlainSelect;
2728

2829
/**
@@ -56,7 +57,7 @@
5657
*
5758
* @author Havard Rast Blok
5859
*/
59-
public class CaseExpression implements Expression {
60+
public class CaseExpression extends ASTNodeAccessImpl implements Expression {
6061

6162
private Expression switchExpression;
6263
private List<WhenClause> whenClauses;

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,14 @@
2121
*/
2222
package net.sf.jsqlparser.expression;
2323

24+
import net.sf.jsqlparser.parser.ASTNodeAccessImpl;
2425
import net.sf.jsqlparser.statement.create.table.ColDataType;
2526

2627
/**
2728
*
2829
* @author tw
2930
*/
30-
public class CastExpression implements Expression {
31+
public class CastExpression extends ASTNodeAccessImpl implements Expression {
3132

3233
private Expression leftExpression;
3334
private ColDataType type;

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,13 @@
3939
*/
4040
package net.sf.jsqlparser.expression;
4141

42+
import net.sf.jsqlparser.parser.ASTNodeAccessImpl;
43+
4244
/**
4345
*
4446
* @author toben
4547
*/
46-
public class DateTimeLiteralExpression implements Expression {
48+
public class DateTimeLiteralExpression extends ASTNodeAccessImpl implements Expression {
4749

4850
private String value;
4951
private DateTime type;

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,14 @@
2121
*/
2222
package net.sf.jsqlparser.expression;
2323

24+
import net.sf.jsqlparser.parser.ASTNodeAccessImpl;
25+
2426
import java.sql.Date;
2527

2628
/**
2729
* A Date in the form {d 'yyyy-mm-dd'}
2830
*/
29-
public class DateValue implements Expression {
31+
public class DateValue extends ASTNodeAccessImpl implements Expression {
3032

3133
private Date value;
3234

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,12 @@
2121
*/
2222
package net.sf.jsqlparser.expression;
2323

24+
import net.sf.jsqlparser.parser.ASTNodeAccessImpl;
25+
2426
/**
2527
* Every number with a point or a exponential format is a DoubleValue
2628
*/
27-
public class DoubleValue implements Expression {
29+
public class DoubleValue extends ASTNodeAccessImpl implements Expression {
2830

2931
private double value;
3032
private String stringValue;

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@
2121
*/
2222
package net.sf.jsqlparser.expression;
2323

24-
public interface Expression {
24+
import net.sf.jsqlparser.parser.ASTNodeAccess;
25+
26+
public interface Expression extends ASTNodeAccess {
2527

2628
void accept(ExpressionVisitor expressionVisitor);
2729
}

0 commit comments

Comments
 (0)