New J2K: Added this and super expressions.
This commit is contained in:
@@ -53,6 +53,8 @@ class JavaToJKTreeBuilder(var symbolProvider: JKSymbolProvider) {
|
|||||||
is PsiParenthesizedExpression -> toJK()
|
is PsiParenthesizedExpression -> toJK()
|
||||||
is PsiAssignmentExpression -> toJK()
|
is PsiAssignmentExpression -> toJK()
|
||||||
is PsiInstanceOfExpression -> toJK()
|
is PsiInstanceOfExpression -> toJK()
|
||||||
|
is PsiThisExpression -> JKThisExpressionImpl()
|
||||||
|
is PsiSuperExpression -> JKSuperExpressionImpl()
|
||||||
else -> {
|
else -> {
|
||||||
throw RuntimeException("Not supported: ${this::class}")
|
throw RuntimeException("Not supported: ${this::class}")
|
||||||
}
|
}
|
||||||
@@ -278,9 +280,8 @@ class JavaToJKTreeBuilder(var symbolProvider: JKSymbolProvider) {
|
|||||||
is PsiExpressionStatement -> JKExpressionStatementImpl(with(expressionTreeMapper) { expression.toJK() })
|
is PsiExpressionStatement -> JKExpressionStatementImpl(with(expressionTreeMapper) { expression.toJK() })
|
||||||
is PsiReturnStatement -> JKReturnStatementImpl(with(expressionTreeMapper) { returnValue.toJK() })
|
is PsiReturnStatement -> JKReturnStatementImpl(with(expressionTreeMapper) { returnValue.toJK() })
|
||||||
is PsiDeclarationStatement -> JKDeclarationStatementImpl(declaredElements.toJK())
|
is PsiDeclarationStatement -> JKDeclarationStatementImpl(declaredElements.toJK())
|
||||||
is PsiAssertStatement -> JKJavaAssertStatementImpl(
|
is PsiAssertStatement -> JKJavaAssertStatementImpl(with(expressionTreeMapper) { assertCondition.toJK() },
|
||||||
with(expressionTreeMapper) { assertCondition.toJK() },
|
with(expressionTreeMapper) { assertDescription.toJK() })
|
||||||
with(expressionTreeMapper) { assertDescription.toJK() })
|
|
||||||
is PsiIfStatement -> if (elseElement == null)
|
is PsiIfStatement -> if (elseElement == null)
|
||||||
JKJavaIfStatementImpl(with(expressionTreeMapper) { condition.toJK() }, thenBranch.toJK())
|
JKJavaIfStatementImpl(with(expressionTreeMapper) { condition.toJK() }, thenBranch.toJK())
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -193,4 +193,12 @@ class JKBlockStatementImpl(block: JKBlock) : JKBlockStatement, JKBranchElementBa
|
|||||||
override var block by child(block)
|
override var block by child(block)
|
||||||
|
|
||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitBlockStatement(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitBlockStatement(this, data)
|
||||||
|
}
|
||||||
|
|
||||||
|
class JKThisExpressionImpl : JKThisExpression, JKElementBase() {
|
||||||
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitThisExpression(this, data)
|
||||||
|
}
|
||||||
|
|
||||||
|
class JKSuperExpressionImpl : JKSuperExpression, JKElementBase() {
|
||||||
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitSuperExpression(this, data)
|
||||||
}
|
}
|
||||||
@@ -163,3 +163,7 @@ interface JKLoopStatement : JKStatement {
|
|||||||
interface JKBlockStatement : JKStatement {
|
interface JKBlockStatement : JKStatement {
|
||||||
var block: JKBlock
|
var block: JKBlock
|
||||||
}
|
}
|
||||||
|
|
||||||
|
interface JKThisExpression : JKExpression
|
||||||
|
|
||||||
|
interface JKSuperExpression : JKExpression
|
||||||
|
|||||||
@@ -38,6 +38,8 @@ interface JKVisitor<out R, in D> {
|
|||||||
fun visitStubExpression(stubExpression: JKStubExpression, data: D): R = visitExpression(stubExpression, data)
|
fun visitStubExpression(stubExpression: JKStubExpression, data: D): R = visitExpression(stubExpression, data)
|
||||||
fun visitLoopStatement(loopStatement: JKLoopStatement, data: D): R = visitStatement(loopStatement, data)
|
fun visitLoopStatement(loopStatement: JKLoopStatement, data: D): R = visitStatement(loopStatement, data)
|
||||||
fun visitBlockStatement(blockStatement: JKBlockStatement, data: D): R = visitStatement(blockStatement, data)
|
fun visitBlockStatement(blockStatement: JKBlockStatement, data: D): R = visitStatement(blockStatement, data)
|
||||||
|
fun visitThisExpression(thisExpression: JKThisExpression, data: D): R = visitExpression(thisExpression, data)
|
||||||
|
fun visitSuperExpression(superExpression: JKSuperExpression, data: D): R = visitExpression(superExpression, data)
|
||||||
fun visitJavaField(javaField: JKJavaField, data: D): R = visitField(javaField, data)
|
fun visitJavaField(javaField: JKJavaField, data: D): R = visitField(javaField, data)
|
||||||
fun visitJavaMethod(javaMethod: JKJavaMethod, data: D): R = visitMethod(javaMethod, data)
|
fun visitJavaMethod(javaMethod: JKJavaMethod, data: D): R = visitMethod(javaMethod, data)
|
||||||
fun visitJavaAssignmentExpression(javaAssignmentExpression: JKJavaAssignmentExpression, data: D): R = visitExpression(javaAssignmentExpression, data)
|
fun visitJavaAssignmentExpression(javaAssignmentExpression: JKJavaAssignmentExpression, data: D): R = visitExpression(javaAssignmentExpression, data)
|
||||||
|
|||||||
@@ -73,6 +73,10 @@ interface JKVisitorVoid : JKVisitor<Unit, Nothing?> {
|
|||||||
override fun visitLoopStatement(loopStatement: JKLoopStatement, data: Nothing?) = visitLoopStatement(loopStatement)
|
override fun visitLoopStatement(loopStatement: JKLoopStatement, data: Nothing?) = visitLoopStatement(loopStatement)
|
||||||
fun visitBlockStatement(blockStatement: JKBlockStatement) = visitStatement(blockStatement, null)
|
fun visitBlockStatement(blockStatement: JKBlockStatement) = visitStatement(blockStatement, null)
|
||||||
override fun visitBlockStatement(blockStatement: JKBlockStatement, data: Nothing?) = visitBlockStatement(blockStatement)
|
override fun visitBlockStatement(blockStatement: JKBlockStatement, data: Nothing?) = visitBlockStatement(blockStatement)
|
||||||
|
fun visitThisExpression(thisExpression: JKThisExpression) = visitExpression(thisExpression, null)
|
||||||
|
override fun visitThisExpression(thisExpression: JKThisExpression, data: Nothing?) = visitThisExpression(thisExpression)
|
||||||
|
fun visitSuperExpression(superExpression: JKSuperExpression) = visitExpression(superExpression, null)
|
||||||
|
override fun visitSuperExpression(superExpression: JKSuperExpression, data: Nothing?) = visitSuperExpression(superExpression)
|
||||||
fun visitJavaField(javaField: JKJavaField) = visitField(javaField, null)
|
fun visitJavaField(javaField: JKJavaField) = visitField(javaField, null)
|
||||||
override fun visitJavaField(javaField: JKJavaField, data: Nothing?) = visitJavaField(javaField)
|
override fun visitJavaField(javaField: JKJavaField, data: Nothing?) = visitJavaField(javaField)
|
||||||
fun visitJavaMethod(javaMethod: JKJavaMethod) = visitMethod(javaMethod, null)
|
fun visitJavaMethod(javaMethod: JKJavaMethod) = visitMethod(javaMethod, null)
|
||||||
|
|||||||
Reference in New Issue
Block a user