Skip to content

Commit 52dd723

Browse files
author
emmanue1
committed
Refactoring to simplify AST exploration
1 parent 55c4460 commit 52dd723

File tree

110 files changed

+1505
-1477
lines changed

Some content is hidden

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

110 files changed

+1505
-1477
lines changed

src/main/java/org/jd/core/v1/model/javasyntax/AbstractJavaSyntaxVisitor.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,7 @@ public void visit(InstanceOfExpression expression) {
268268

269269
@Override
270270
public void visit(LambdaFormalParametersExpression expression) {
271-
safeAccept(expression.getParameters());
271+
safeAccept(expression.getFormalParameters());
272272
expression.getStatements().accept(this);
273273
}
274274

@@ -332,6 +332,9 @@ public void visit(NewInitializedArray expression) {
332332
safeAccept(expression.getArrayInitializer());
333333
}
334334

335+
@Override
336+
public void visit(NoExpression expression) {}
337+
335338
@Override
336339
public void visit(NullExpression expression) {
337340
BaseType type = expression.getType();
@@ -525,6 +528,9 @@ public void visit(LocalVariableDeclarationStatement statement) {
525528
visit((LocalVariableDeclaration) statement);
526529
}
527530

531+
@Override
532+
public void visit(NoStatement statement) {}
533+
528534
@Override public void visit(ReturnExpressionStatement statement) {
529535
statement.getExpression().accept(this);
530536
}

src/main/java/org/jd/core/v1/model/javasyntax/declaration/BaseMemberDeclaration.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,5 @@
1010
import org.jd.core.v1.util.Base;
1111

1212
public interface BaseMemberDeclaration extends Declaration, Base<MemberDeclaration> {
13+
default boolean isClassDeclaration() { return false; }
1314
}

src/main/java/org/jd/core/v1/model/javasyntax/declaration/ClassDeclaration.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@ public ObjectType getSuperType() {
2828
return superType;
2929
}
3030

31+
@Override
32+
public boolean isClassDeclaration() { return true; }
33+
3134
@Override
3235
public void accept(DeclarationVisitor visitor) {
3336
visitor.visit(this);

src/main/java/org/jd/core/v1/model/javasyntax/declaration/ExpressionVariableInitializer.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ public ExpressionVariableInitializer(Expression expression) {
1616
this.expression = expression;
1717
}
1818

19+
@Override
1920
public Expression getExpression() {
2021
return expression;
2122
}
@@ -46,6 +47,9 @@ public int hashCode() {
4647
return 25107399 + (expression != null ? expression.hashCode() : 0);
4748
}
4849

50+
@Override
51+
public boolean isExpressionVariableInitializer() { return true; }
52+
4953
@Override
5054
public void accept(DeclarationVisitor visitor) {
5155
visitor.visit(this);

src/main/java/org/jd/core/v1/model/javasyntax/declaration/VariableInitializer.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,14 @@
77

88
package org.jd.core.v1.model.javasyntax.declaration;
99

10+
import org.jd.core.v1.model.javasyntax.expression.Expression;
11+
12+
import static org.jd.core.v1.model.javasyntax.expression.NoExpression.NO_EXPRESSION;
13+
1014
public interface VariableInitializer extends Declaration {
1115
int getLineNumber();
16+
17+
default boolean isExpressionVariableInitializer() { return false; }
18+
19+
default Expression getExpression() { return NO_EXPRESSION; }
1220
}

src/main/java/org/jd/core/v1/model/javasyntax/expression/AbstractNopExpressionVisitor.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ public abstract class AbstractNopExpressionVisitor implements ExpressionVisitor
3232
@Override public void visit(NewArray expression) {}
3333
@Override public void visit(NewExpression expression) {}
3434
@Override public void visit(NewInitializedArray expression) {}
35+
@Override public void visit(NoExpression expression) {}
3536
@Override public void visit(NullExpression expression) {}
3637
@Override public void visit(ObjectTypeReferenceExpression expression) {}
3738
@Override public void visit(ParenthesesExpression expression) {}

src/main/java/org/jd/core/v1/model/javasyntax/expression/ArrayExpression.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ public ArrayExpression(int lineNumber, Expression expression, Expression index)
2727
this.index = index;
2828
}
2929

30+
@Override
3031
public Expression getExpression() {
3132
return expression;
3233
}
@@ -55,6 +56,9 @@ protected static Type createItemType(Expression expression) {
5556
return type.createType((dimension > 0) ? dimension-1 : 0);
5657
}
5758

59+
@Override
60+
public boolean isArrayExpression() { return true; }
61+
5862
@Override
5963
public void accept(ExpressionVisitor visitor) {
6064
visitor.visit(this);

src/main/java/org/jd/core/v1/model/javasyntax/expression/BaseExpression.java

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,53 @@
99

1010
import org.jd.core.v1.util.Base;
1111

12+
import static org.jd.core.v1.model.javasyntax.expression.NoExpression.NO_EXPRESSION;
13+
1214
public interface BaseExpression extends Base<Expression> {
1315
void accept(ExpressionVisitor visitor);
16+
17+
default boolean isArrayExpression() { return false; }
18+
default boolean isBinaryOperatorExpression() { return false; }
19+
default boolean isBooleanExpression() { return false; }
20+
default boolean isCastExpression() { return false; }
21+
default boolean isConstructorInvocationExpression() { return false; }
22+
default boolean isDoubleConstantExpression() { return false; }
23+
default boolean isFieldReferenceExpression() { return false; }
24+
default boolean isFloatConstantExpression() { return false; }
25+
default boolean isIntegerConstantExpression() { return false; }
26+
default boolean isLengthExpression() { return false; }
27+
default boolean isLocalVariableReferenceExpression() { return false; }
28+
default boolean isLongConstantExpression() { return false; }
29+
default boolean isMethodInvocationExpression() { return false; }
30+
default boolean isNewArray() { return false; }
31+
default boolean isNewExpression() { return false; }
32+
default boolean isNewInitializedArray() { return false; }
33+
default boolean isNullExpression() { return false; }
34+
default boolean isObjectTypeReferenceExpression() { return false; }
35+
default boolean isPostOperatorExpression() { return false; }
36+
default boolean isPreOperatorExpression() { return false; }
37+
default boolean isStringConstantExpression() { return false; }
38+
default boolean isSuperConstructorInvocationExpression() { return false; }
39+
default boolean isSuperExpression() { return false; }
40+
default boolean isTernaryOperatorExpression() { return false; }
41+
default boolean isThisExpression() { return false; }
42+
43+
default BaseExpression getDimensionExpressionList() { return NO_EXPRESSION; }
44+
default BaseExpression getParameters() { return NO_EXPRESSION; }
45+
46+
default Expression getCondition() { return NO_EXPRESSION; }
47+
default Expression getExpression() { return NO_EXPRESSION; }
48+
default Expression getExpressionTrue() { return NO_EXPRESSION; }
49+
default Expression getExpressionFalse() { return NO_EXPRESSION; }
50+
default Expression getIndex() { return NO_EXPRESSION; }
51+
default Expression getLeftExpression() { return NO_EXPRESSION; }
52+
default Expression getRightExpression() { return NO_EXPRESSION; }
53+
54+
default String getDescriptor() { return ""; }
55+
default double getDoubleValue() { return 0D; }
56+
default float getFloatValue() { return 0F; }
57+
default int getIntegerValue() { return 0; }
58+
default long getLongValue() { return 0L; }
59+
default String getName() { return ""; }
60+
default String getOperator() { return ""; }
1461
}

src/main/java/org/jd/core/v1/model/javasyntax/expression/BinaryOperatorExpression.java

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ public BinaryOperatorExpression(int lineNumber, Type type, Expression leftExpres
2323
this.priority = priority;
2424
}
2525

26+
@Override
2627
public Expression getLeftExpression() {
2728
return leftExpression;
2829
}
@@ -31,11 +32,7 @@ public void setLeftExpression(Expression leftExpression) {
3132
this.leftExpression = leftExpression;
3233
}
3334

34-
@SuppressWarnings("unchecked")
35-
public <T extends Expression> T getGenericLeftExpression() {
36-
return (T) leftExpression;
37-
}
38-
35+
@Override
3936
public String getOperator() {
4037
return operator;
4138
}
@@ -44,6 +41,7 @@ public void setOperator(String operator) {
4441
this.operator = operator;
4542
}
4643

44+
@Override
4745
public Expression getRightExpression() {
4846
return rightExpression;
4947
}
@@ -52,11 +50,6 @@ public void setRightExpression(Expression rightExpression) {
5250
this.rightExpression = rightExpression;
5351
}
5452

55-
@SuppressWarnings("unchecked")
56-
public <T extends Expression> T getGenericRightExpression() {
57-
return (T) rightExpression;
58-
}
59-
6053
public int getPriority() {
6154
return priority;
6255
}
@@ -65,6 +58,9 @@ public void setPriority(int priority) {
6558
this.priority = priority;
6659
}
6760

61+
@Override
62+
public boolean isBinaryOperatorExpression() { return true; }
63+
6864
@Override
6965
public void accept(ExpressionVisitor visitor) {
7066
visitor.visit(this);

src/main/java/org/jd/core/v1/model/javasyntax/expression/BooleanExpression.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,9 @@ public boolean isFalse() {
3838
return !value;
3939
}
4040

41+
@Override
42+
public boolean isBooleanExpression() { return true; }
43+
4144
@Override
4245
public void accept(ExpressionVisitor visitor) {
4346
visitor.visit(this);

0 commit comments

Comments
 (0)