New J2K: Add JKEmptyStatement
This commit is contained in:
committed by
Ilya Kirillov
parent
e10a81a942
commit
78c5b4acd5
@@ -379,6 +379,7 @@ class JavaToJKTreeBuilder(var symbolProvider: JKSymbolProvider) {
|
|||||||
val (labels, statement) = collectLabels()
|
val (labels, statement) = collectLabels()
|
||||||
JKLabeledStatementImpl(statement.toJK(), labels.map { JKNameIdentifierImpl(it.text) })
|
JKLabeledStatementImpl(statement.toJK(), labels.map { JKNameIdentifierImpl(it.text) })
|
||||||
}
|
}
|
||||||
|
is PsiEmptyStatement -> JKEmptyStatementImpl()
|
||||||
else -> TODO("for ${this::class}")
|
else -> TODO("for ${this::class}")
|
||||||
}.also {
|
}.also {
|
||||||
if (this != null) (it as PsiOwner).psi = this
|
if (this != null) (it as PsiOwner).psi = this
|
||||||
|
|||||||
@@ -405,6 +405,12 @@ class NewCodeBuilder {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun visitEmptyStatement(emptyStatement: JKEmptyStatement) {
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun visitStubExpression(stubExpression: JKStubExpression) {
|
||||||
|
}
|
||||||
|
|
||||||
override fun visitKtConvertedFromForLoopSyntheticWhileStatement(
|
override fun visitKtConvertedFromForLoopSyntheticWhileStatement(
|
||||||
ktConvertedFromForLoopSyntheticWhileStatement: JKKtConvertedFromForLoopSyntheticWhileStatement
|
ktConvertedFromForLoopSyntheticWhileStatement: JKKtConvertedFromForLoopSyntheticWhileStatement
|
||||||
) {
|
) {
|
||||||
|
|||||||
@@ -434,6 +434,10 @@ class JKLabeledStatementImpl(statement: JKStatement, labels: List<JKNameIdentifi
|
|||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitLabeledStatement(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitLabeledStatement(this, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class JKEmptyStatementImpl: JKEmptyStatement, JKElementBase() , PsiOwner by PsiOwnerImpl() {
|
||||||
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitEmptyStatement(this, data)
|
||||||
|
}
|
||||||
|
|
||||||
class PsiOwnerImpl(override var psi: PsiElement? = null) : PsiOwner
|
class PsiOwnerImpl(override var psi: PsiElement? = null) : PsiOwner
|
||||||
|
|
||||||
val JKElement.psi: PsiElement?
|
val JKElement.psi: PsiElement?
|
||||||
@@ -441,3 +445,4 @@ val JKElement.psi: PsiElement?
|
|||||||
|
|
||||||
fun <Elem : PsiElement>JKElement.psi(): Elem? =
|
fun <Elem : PsiElement>JKElement.psi(): Elem? =
|
||||||
(this as? PsiOwner)?.psi as? Elem
|
(this as? PsiOwner)?.psi as? Elem
|
||||||
|
|
||||||
|
|||||||
@@ -271,4 +271,6 @@ interface JKContinueStatement : JKStatement {
|
|||||||
interface JKLabeledStatement : JKStatement {
|
interface JKLabeledStatement : JKStatement {
|
||||||
var statement: JKStatement
|
var statement: JKStatement
|
||||||
val labels: List<JKNameIdentifier>
|
val labels: List<JKNameIdentifier>
|
||||||
}
|
}
|
||||||
|
|
||||||
|
interface JKEmptyStatement : JKStatement
|
||||||
@@ -59,6 +59,7 @@ interface JKVisitor<out R, in D> {
|
|||||||
fun visitLabelText(labelText: JKLabelText, data: D): R = visitLabel(labelText, data)
|
fun visitLabelText(labelText: JKLabelText, data: D): R = visitLabel(labelText, data)
|
||||||
fun visitContinueStatement(continueStatement: JKContinueStatement, data: D): R = visitStatement(continueStatement, data)
|
fun visitContinueStatement(continueStatement: JKContinueStatement, data: D): R = visitStatement(continueStatement, data)
|
||||||
fun visitLabeledStatement(labeledStatement: JKLabeledStatement, data: D): R = visitStatement(labeledStatement, data)
|
fun visitLabeledStatement(labeledStatement: JKLabeledStatement, data: D): R = visitStatement(labeledStatement, data)
|
||||||
|
fun visitEmptyStatement(emptyStatement: JKEmptyStatement, data: D): R = visitStatement(emptyStatement, 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 visitJavaMethodCallExpression(javaMethodCallExpression: JKJavaMethodCallExpression, data: D): R = visitMethodCallExpression(javaMethodCallExpression, data)
|
fun visitJavaMethodCallExpression(javaMethodCallExpression: JKJavaMethodCallExpression, data: D): R = visitMethodCallExpression(javaMethodCallExpression, data)
|
||||||
|
|||||||
@@ -115,6 +115,8 @@ interface JKVisitorVoid : JKVisitor<Unit, Nothing?> {
|
|||||||
override fun visitContinueStatement(continueStatement: JKContinueStatement, data: Nothing?) = visitContinueStatement(continueStatement)
|
override fun visitContinueStatement(continueStatement: JKContinueStatement, data: Nothing?) = visitContinueStatement(continueStatement)
|
||||||
fun visitLabeledStatement(labeledStatement: JKLabeledStatement) = visitStatement(labeledStatement, null)
|
fun visitLabeledStatement(labeledStatement: JKLabeledStatement) = visitStatement(labeledStatement, null)
|
||||||
override fun visitLabeledStatement(labeledStatement: JKLabeledStatement, data: Nothing?) = visitLabeledStatement(labeledStatement)
|
override fun visitLabeledStatement(labeledStatement: JKLabeledStatement, data: Nothing?) = visitLabeledStatement(labeledStatement)
|
||||||
|
fun visitEmptyStatement(emptyStatement: JKEmptyStatement) = visitStatement(emptyStatement, null)
|
||||||
|
override fun visitEmptyStatement(emptyStatement: JKEmptyStatement, data: Nothing?) = visitEmptyStatement(emptyStatement)
|
||||||
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