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) {
|
fun PsiJavaToken.toJK(): JKOperator = when (tokenType) {
|
||||||
JavaTokenType.PLUS -> JKJavaOperatorImpl.PLUS
|
JavaTokenType.PLUS -> JKJavaOperatorImpl.PLUS
|
||||||
JavaTokenType.MINUS -> JKJavaOperatorImpl.MINUS
|
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")
|
else -> throw RuntimeException("Not supported")
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -283,6 +289,9 @@ 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() ?: JKStubExpressionImpl() })
|
is PsiReturnStatement -> JKReturnStatementImpl(with(expressionTreeMapper) { returnValue?.toJK() ?: JKStubExpressionImpl() })
|
||||||
is PsiDeclarationStatement -> JKDeclarationStatementImpl(declaredElements.toJK())
|
is PsiDeclarationStatement -> JKDeclarationStatementImpl(declaredElements.toJK())
|
||||||
|
is PsiAssertStatement -> JKAssertStatementImpl(
|
||||||
|
with(expressionTreeMapper) { assertCondition?.toJK() } ?: JKStubExpressionImpl(),
|
||||||
|
with(expressionTreeMapper) { assertDescription?.toJK() } ?: JKStubExpressionImpl())
|
||||||
else -> TODO("for ${this::class}")
|
else -> TODO("for ${this::class}")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -66,6 +66,12 @@ class JKJavaModifierImpl(override val type: JKJavaModifier.JavaModifierType) : J
|
|||||||
sealed class JKJavaOperatorImpl : JKOperator {
|
sealed class JKJavaOperatorImpl : JKOperator {
|
||||||
object PLUS : JKJavaOperatorImpl()
|
object PLUS : JKJavaOperatorImpl()
|
||||||
object MINUS : 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 {
|
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)
|
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() {
|
sealed class JKKtOperatorImpl : JKOperator, JKElementBase() {
|
||||||
object PLUS : JKKtOperatorImpl()
|
object PLUS : JKKtOperatorImpl()
|
||||||
object MINUS : JKKtOperatorImpl()
|
object MINUS : JKKtOperatorImpl()
|
||||||
|
object EQEQ : JKKtOperatorImpl()
|
||||||
|
object NE : JKKtOperatorImpl()
|
||||||
}
|
}
|
||||||
@@ -157,3 +157,8 @@ interface JKStringLiteralExpression : JKLiteralExpression {
|
|||||||
}
|
}
|
||||||
|
|
||||||
interface JKStubExpression : JKExpression
|
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 visitValueArgument(valueArgument: JKValueArgument, data: D): R = visitTreeElement(valueArgument, data)
|
||||||
fun visitStringLiteralExpression(stringLiteralExpression: JKStringLiteralExpression, data: D): R = visitLiteralExpression(stringLiteralExpression, data)
|
fun visitStringLiteralExpression(stringLiteralExpression: JKStringLiteralExpression, data: D): R = visitLiteralExpression(stringLiteralExpression, data)
|
||||||
fun visitStubExpression(stubExpression: JKStubExpression, data: D): R = visitExpression(stubExpression, 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 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 visitJavaForLoop(javaForLoop: JKJavaForLoop, data: D): R = visitLoop(javaForLoop, 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)
|
override fun visitStringLiteralExpression(stringLiteralExpression: JKStringLiteralExpression, data: Nothing?) = visitStringLiteralExpression(stringLiteralExpression)
|
||||||
fun visitStubExpression(stubExpression: JKStubExpression) = visitExpression(stubExpression, null)
|
fun visitStubExpression(stubExpression: JKStubExpression) = visitExpression(stubExpression, null)
|
||||||
override fun visitStubExpression(stubExpression: JKStubExpression, data: Nothing?) = visitStubExpression(stubExpression)
|
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)
|
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