New J2K: Added assertion statement and more operators.
This commit is contained in:
@@ -107,6 +107,12 @@ class JavaToJKTreeBuilder(var symbolProvider: JKSymbolProvider) {
|
||||
fun PsiJavaToken.toJK(): JKOperator = when (tokenType) {
|
||||
JavaTokenType.PLUS -> JKJavaOperatorImpl.PLUS
|
||||
JavaTokenType.MINUS -> JKJavaOperatorImpl.MINUS
|
||||
JavaTokenType.EQEQ -> JKJavaOperatorImpl.EQEQ
|
||||
JavaTokenType.NE -> JKJavaOperatorImpl.NE
|
||||
JavaTokenType.GT -> JKJavaOperatorImpl.GT
|
||||
JavaTokenType.LT -> JKJavaOperatorImpl.LT
|
||||
JavaTokenType.GE -> JKJavaOperatorImpl.GE
|
||||
JavaTokenType.LE -> JKJavaOperatorImpl.LE
|
||||
else -> throw RuntimeException("Not supported")
|
||||
}
|
||||
|
||||
@@ -283,6 +289,9 @@ class JavaToJKTreeBuilder(var symbolProvider: JKSymbolProvider) {
|
||||
is PsiExpressionStatement -> JKExpressionStatementImpl(with(expressionTreeMapper) { expression.toJK() })
|
||||
is PsiReturnStatement -> JKReturnStatementImpl(with(expressionTreeMapper) { returnValue?.toJK() ?: JKStubExpressionImpl() })
|
||||
is PsiDeclarationStatement -> JKDeclarationStatementImpl(declaredElements.toJK())
|
||||
is PsiAssertStatement -> JKAssertStatementImpl(
|
||||
with(expressionTreeMapper) { assertCondition?.toJK() } ?: JKStubExpressionImpl(),
|
||||
with(expressionTreeMapper) { assertDescription?.toJK() } ?: JKStubExpressionImpl())
|
||||
else -> TODO("for ${this::class}")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -66,6 +66,12 @@ class JKJavaModifierImpl(override val type: JKJavaModifier.JavaModifierType) : J
|
||||
sealed class JKJavaOperatorImpl : JKOperator {
|
||||
object PLUS : JKJavaOperatorImpl()
|
||||
object MINUS : JKJavaOperatorImpl()
|
||||
object EQEQ : JKJavaOperatorImpl()
|
||||
object NE : JKJavaOperatorImpl()
|
||||
object GT : JKJavaOperatorImpl()
|
||||
object LT : JKJavaOperatorImpl()
|
||||
object GE : JKJavaOperatorImpl()
|
||||
object LE : JKJavaOperatorImpl()
|
||||
}
|
||||
|
||||
sealed class JKJavaQualifierImpl : JKQualifier {
|
||||
|
||||
@@ -166,4 +166,11 @@ class JKLocalVariableImpl(modifierList: JKModifierList, type: JKTypeElement, nam
|
||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitLocalVariable(this, data)
|
||||
}
|
||||
|
||||
class JKStubExpressionImpl() : JKStubExpression, JKElementBase()
|
||||
class JKStubExpressionImpl : JKStubExpression, JKElementBase()
|
||||
|
||||
class JKAssertStatementImpl(condition: JKExpression, description: JKExpression) : JKAssertStatement, JKBranchElementBase() {
|
||||
override val description by child(description)
|
||||
override val condition by child(condition)
|
||||
|
||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitAssertStatement(this, data)
|
||||
}
|
||||
@@ -81,4 +81,6 @@ class JKKtLiteralExpressionImpl(
|
||||
sealed class JKKtOperatorImpl : JKOperator, JKElementBase() {
|
||||
object PLUS : JKKtOperatorImpl()
|
||||
object MINUS : JKKtOperatorImpl()
|
||||
object EQEQ : JKKtOperatorImpl()
|
||||
object NE : JKKtOperatorImpl()
|
||||
}
|
||||
@@ -157,3 +157,8 @@ interface JKStringLiteralExpression : JKLiteralExpression {
|
||||
}
|
||||
|
||||
interface JKStubExpression : JKExpression
|
||||
|
||||
interface JKAssertStatement : JKStatement {
|
||||
val condition: JKExpression
|
||||
val description: JKExpression
|
||||
}
|
||||
|
||||
@@ -37,6 +37,7 @@ interface JKVisitor<out R, in D> {
|
||||
fun visitValueArgument(valueArgument: JKValueArgument, data: D): R = visitTreeElement(valueArgument, data)
|
||||
fun visitStringLiteralExpression(stringLiteralExpression: JKStringLiteralExpression, data: D): R = visitLiteralExpression(stringLiteralExpression, data)
|
||||
fun visitStubExpression(stubExpression: JKStubExpression, data: D): R = visitExpression(stubExpression, data)
|
||||
fun visitAssertStatement(assertStatement: JKAssertStatement, data: D): R = visitStatement(assertStatement, data)
|
||||
fun visitJavaField(javaField: JKJavaField, data: D): R = visitField(javaField, data)
|
||||
fun visitJavaMethod(javaMethod: JKJavaMethod, data: D): R = visitMethod(javaMethod, data)
|
||||
fun visitJavaForLoop(javaForLoop: JKJavaForLoop, data: D): R = visitLoop(javaForLoop, data)
|
||||
|
||||
@@ -71,6 +71,8 @@ interface JKVisitorVoid : JKVisitor<Unit, Nothing?> {
|
||||
override fun visitStringLiteralExpression(stringLiteralExpression: JKStringLiteralExpression, data: Nothing?) = visitStringLiteralExpression(stringLiteralExpression)
|
||||
fun visitStubExpression(stubExpression: JKStubExpression) = visitExpression(stubExpression, null)
|
||||
override fun visitStubExpression(stubExpression: JKStubExpression, data: Nothing?) = visitStubExpression(stubExpression)
|
||||
fun visitAssertStatement(assertStatement: JKAssertStatement) = visitStatement(assertStatement, null)
|
||||
override fun visitAssertStatement(assertStatement: JKAssertStatement, data: Nothing?) = visitAssertStatement(assertStatement)
|
||||
fun visitJavaField(javaField: JKJavaField) = visitField(javaField, null)
|
||||
override fun visitJavaField(javaField: JKJavaField, data: Nothing?) = visitJavaField(javaField)
|
||||
fun visitJavaMethod(javaMethod: JKJavaMethod) = visitMethod(javaMethod, null)
|
||||
|
||||
Reference in New Issue
Block a user