New J2K: Rebase to latest changes.

This commit is contained in:
Dimach
2017-11-15 11:27:16 +02:00
committed by Ilya Kirillov
parent a94957aa0f
commit dd499d7a13
6 changed files with 158 additions and 73 deletions
@@ -191,7 +191,10 @@ class JavaToJKTreeBuilder {
fun PsiField.toJK(): JKJavaField {
val initializer = this.initializer?.buildTreeForExpression()
val initializer = with(ExpressionTreeMapper) {
initializer?.toJK()
}
val type = JKJavaTypeIdentifierImpl(this.type.canonicalText)
val name = JKNameIdentifierImpl(this.name!!)
@@ -24,7 +24,7 @@ interface JKKtPrimaryConstructor : JKKtConstructor
interface JKKtAssignmentStatement : JKStatement
interface JKKtCall : JKCall
interface JKKtCall : JKMethodCallExpression
interface JKKtProperty : JKDeclaration, JKModifierListOwner {
var type: JKTypeIdentifier
@@ -2,48 +2,63 @@ package org.jetbrains.kotlin.j2k.tree.visitors
import org.jetbrains.kotlin.j2k.tree.*
interface JKTransformer<in D> {
fun <E: JKElement> transformElement(element: JKElement, data: D): E
fun <E: JKClass> transformClass(klass: JKClass, data: D): E = transformDeclaration(klass, data)
fun <E: JKStatement> transformStatement(statement: JKStatement, data: D): E = transformElement(statement, data)
fun <E: JKExpression> transformExpression(expression: JKExpression, data: D): E = transformStatement(expression, data)
fun <E: JKBinaryExpression> transformBinaryExpression(binaryExpression: JKBinaryExpression, data: D): E = transformExpression(binaryExpression, data)
fun <E: JKUnaryExpression> transformUnaryExpression(unaryExpression: JKUnaryExpression, data: D): E = transformExpression(unaryExpression, data)
fun <E: JKPrefixExpression> transformPrefixExpression(prefixExpression: JKPrefixExpression, data: D): E = transformUnaryExpression(prefixExpression, data)
fun <E: JKPostfixExpression> transformPostfixExpression(postfixExpression: JKPostfixExpression, data: D): E = transformUnaryExpression(postfixExpression, data)
fun <E: JKQualifiedExpression> transformQualifiedExpression(qualifiedExpression: JKQualifiedExpression, data: D): E = transformExpression(qualifiedExpression, data)
fun <E: JKMethodCallExpression> transformMethodCallExpression(methodCallExpression: JKMethodCallExpression, data: D): E = transformExpression(methodCallExpression, data)
fun <E: JKFieldAccessExpression> transformFieldAccessExpression(fieldAccessExpression: JKFieldAccessExpression, data: D): E = transformExpression(fieldAccessExpression, data)
fun <E: JKExpressionList> transformExpressionList(expressionList: JKExpressionList, data: D): E = transformElement(expressionList, data)
fun <E: JKMethodReference> transformMethodReference(methodReference: JKMethodReference, data: D): E = transformElement(methodReference, data)
fun <E: JKFieldReference> transformFieldReference(fieldReference: JKFieldReference, data: D): E = transformElement(fieldReference, data)
fun <E: JKOperatorIdentifier> transformOperatorIdentifier(operatorIdentifier: JKOperatorIdentifier, data: D): E = transformIdentifier(operatorIdentifier, data)
fun <E: JKQualificationIdentifier> transformQualificationIdentifier(qualificationIdentifier: JKQualificationIdentifier, data: D): E = transformIdentifier(qualificationIdentifier, data)
fun <E: JKLoop> transformLoop(loop: JKLoop, data: D): E = transformStatement(loop, data)
fun <E: JKDeclaration> transformDeclaration(declaration: JKDeclaration, data: D): E = transformElement(declaration, data)
fun <E: JKBlock> transformBlock(block: JKBlock, data: D): E = transformElement(block, data)
fun <E: JKIdentifier> transformIdentifier(identifier: JKIdentifier, data: D): E = transformElement(identifier, data)
fun <E: JKTypeIdentifier> transformTypeIdentifier(typeIdentifier: JKTypeIdentifier, data: D): E = transformIdentifier(typeIdentifier, data)
fun <E: JKNameIdentifier> transformNameIdentifier(nameIdentifier: JKNameIdentifier, data: D): E = transformIdentifier(nameIdentifier, data)
fun <E: JKLiteralExpression> transformLiteralExpression(literalExpression: JKLiteralExpression, data: D): E = transformExpression(literalExpression, data)
fun <E: JKModifierList> transformModifierList(modifierList: JKModifierList, data: D): E = transformElement(modifierList, data)
fun <E: JKModifier> transformModifier(modifier: JKModifier, data: D): E = transformElement(modifier, data)
fun <E: JKAccessModifier> transformAccessModifier(accessModifier: JKAccessModifier, data: D): E = transformModifier(accessModifier, data)
fun <E: JKDeclaration> transformJavaField(javaField: JKJavaField, data: D): E = transformDeclaration(javaField, data)
fun <E: JKDeclaration> transformJavaMethod(javaMethod: JKJavaMethod, data: D): E = transformDeclaration(javaMethod, data)
fun <E: JKLoop> transformJavaForLoop(javaForLoop: JKJavaForLoop, data: D): E = transformLoop(javaForLoop, data)
fun <E: JKExpression> transformJavaAssignmentExpression(javaAssignmentExpression: JKJavaAssignmentExpression, data: D): E = transformExpression(javaAssignmentExpression, data)
fun <E: JKTypeIdentifier> transformJavaTypeIdentifier(javaTypeIdentifier: JKJavaTypeIdentifier, data: D): E = transformTypeIdentifier(javaTypeIdentifier, data)
fun <E: JKLiteralExpression> transformJavaStringLiteralExpression(javaStringLiteralExpression: JKJavaStringLiteralExpression, data: D): E = transformLiteralExpression(javaStringLiteralExpression, data)
fun <E: JKOperatorIdentifier> transformJavaOperatorIdentifier(javaOperatorIdentifier: JKJavaOperatorIdentifier, data: D): E = transformOperatorIdentifier(javaOperatorIdentifier, data)
fun <E: JKQualificationIdentifier> transformJavaQualificationIdentifier(javaQualificationIdentifier: JKJavaQualificationIdentifier, data: D): E = transformQualificationIdentifier(javaQualificationIdentifier, data)
fun <E: JKMethodCallExpression> transformJavaMethodCallExpression(javaMethodCallExpression: JKJavaMethodCallExpression, data: D): E = transformMethodCallExpression(javaMethodCallExpression, data)
fun <E: JKFieldAccessExpression> transformJavaFieldAccessExpression(javaFieldAccessExpression: JKJavaFieldAccessExpression, data: D): E = transformFieldAccessExpression(javaFieldAccessExpression, data)
fun <E: JKMethodReference> transformJavaMethodReference(javaMethodReference: JKJavaMethodReference, data: D): E = transformMethodReference(javaMethodReference, data)
fun <E: JKFieldReference> transformJavaFieldReference(javaFieldReference: JKJavaFieldReference, data: D): E = transformFieldReference(javaFieldReference, data)
fun <E: JKAccessModifier> transformJavaAccessModifier(javaAccessModifier: JKJavaAccessModifier, data: D): E = transformAccessModifier(javaAccessModifier, data)
fun <E: JKDeclaration> transformKtFun(ktFun: JKKtFun, data: D): E = transformDeclaration(ktFun, data)
fun <E: JKDeclaration> transformKtConstructor(ktConstructor: JKKtConstructor, data: D): E = transformDeclaration(ktConstructor, data)
fun <E: JKDeclaration> transformKtPrimaryConstructor(ktPrimaryConstructor: JKKtPrimaryConstructor, data: D): E = transformKtConstructor(ktPrimaryConstructor, data)
fun <E: JKStatement> transformKtAssignmentStatement(ktAssignmentStatement: JKKtAssignmentStatement, data: D): E = transformStatement(ktAssignmentStatement, data)
interface JKTransformer<in D> : JKVisitor<JKElement, D> {
override fun visitElement(element: JKElement, data: D): JKElement
override fun visitClass(klass: JKClass, data: D): JKClass = visitDeclaration(klass, data) as JKClass
override fun visitStatement(statement: JKStatement, data: D): JKStatement = visitElement(statement, data) as JKStatement
override fun visitExpression(expression: JKExpression, data: D): JKExpression = visitStatement(expression, data) as JKExpression
override fun visitBinaryExpression(binaryExpression: JKBinaryExpression, data: D): JKBinaryExpression = visitExpression(binaryExpression, data) as JKBinaryExpression
override fun visitUnaryExpression(unaryExpression: JKUnaryExpression, data: D): JKUnaryExpression = visitExpression(unaryExpression, data) as JKUnaryExpression
override fun visitPrefixExpression(prefixExpression: JKPrefixExpression, data: D): JKPrefixExpression = visitUnaryExpression(prefixExpression, data) as JKPrefixExpression
override fun visitPostfixExpression(postfixExpression: JKPostfixExpression, data: D): JKPostfixExpression = visitUnaryExpression(postfixExpression, data) as JKPostfixExpression
override fun visitQualifiedExpression(qualifiedExpression: JKQualifiedExpression, data: D): JKQualifiedExpression = visitExpression(qualifiedExpression, data) as JKQualifiedExpression
override fun visitMethodCallExpression(methodCallExpression: JKMethodCallExpression, data: D): JKMethodCallExpression = visitExpression(methodCallExpression, data) as JKMethodCallExpression
override fun visitFieldAccessExpression(fieldAccessExpression: JKFieldAccessExpression, data: D): JKFieldAccessExpression = visitExpression(fieldAccessExpression, data) as JKFieldAccessExpression
override fun visitArrayAccessExpression(arrayAccessExpression: JKArrayAccessExpression, data: D): JKArrayAccessExpression = visitExpression(arrayAccessExpression, data) as JKArrayAccessExpression
override fun visitParenthesizedExpression(parenthesizedExpression: JKParenthesizedExpression, data: D): JKParenthesizedExpression = visitExpression(parenthesizedExpression, data) as JKParenthesizedExpression
override fun visitTypeCastExpression(typeCastExpression: JKTypeCastExpression, data: D): JKTypeCastExpression = visitExpression(typeCastExpression, data) as JKTypeCastExpression
override fun visitExpressionList(expressionList: JKExpressionList, data: D): JKExpressionList = visitElement(expressionList, data) as JKExpressionList
override fun visitMethodReference(methodReference: JKMethodReference, data: D): JKMethodReference = visitElement(methodReference, data) as JKMethodReference
override fun visitFieldReference(fieldReference: JKFieldReference, data: D): JKFieldReference = visitElement(fieldReference, data) as JKFieldReference
override fun visitClassReference(classReference: JKClassReference, data: D): JKClassReference = visitElement(classReference, data) as JKClassReference
override fun visitTypeReference(typeReference: JKTypeReference, data: D): JKTypeReference = visitElement(typeReference, data) as JKTypeReference
override fun visitOperatorIdentifier(operatorIdentifier: JKOperatorIdentifier, data: D): JKOperatorIdentifier = visitIdentifier(operatorIdentifier, data) as JKOperatorIdentifier
override fun visitQualificationIdentifier(qualificationIdentifier: JKQualificationIdentifier, data: D): JKQualificationIdentifier = visitIdentifier(qualificationIdentifier, data) as JKQualificationIdentifier
override fun visitLoop(loop: JKLoop, data: D): JKLoop = visitStatement(loop, data) as JKLoop
override fun visitDeclaration(declaration: JKDeclaration, data: D): JKDeclaration = visitElement(declaration, data) as JKDeclaration
override fun visitBlock(block: JKBlock, data: D): JKBlock = visitElement(block, data) as JKBlock
override fun visitIdentifier(identifier: JKIdentifier, data: D): JKIdentifier = visitElement(identifier, data) as JKIdentifier
override fun visitTypeIdentifier(typeIdentifier: JKTypeIdentifier, data: D): JKTypeIdentifier = visitIdentifier(typeIdentifier, data) as JKTypeIdentifier
override fun visitNameIdentifier(nameIdentifier: JKNameIdentifier, data: D): JKNameIdentifier = visitIdentifier(nameIdentifier, data) as JKNameIdentifier
override fun visitLiteralExpression(literalExpression: JKLiteralExpression, data: D): JKLiteralExpression = visitExpression(literalExpression, data) as JKLiteralExpression
override fun visitModifierList(modifierList: JKModifierList, data: D): JKModifierList = visitElement(modifierList, data) as JKModifierList
override fun visitModifier(modifier: JKModifier, data: D): JKModifier = visitElement(modifier, data) as JKModifier
override fun visitAccessModifier(accessModifier: JKAccessModifier, data: D): JKAccessModifier = visitModifier(accessModifier, data) as JKAccessModifier
override fun visitValueArgument(valueArgument: JKValueArgument, data: D): JKValueArgument = visitElement(valueArgument, data) as JKValueArgument
override fun visitStringLiteralExpression(stringLiteralExpression: JKStringLiteralExpression, data: D): JKStringLiteralExpression = visitLiteralExpression(stringLiteralExpression, data) as JKStringLiteralExpression
override fun visitModalityModifier(modalityModifier: JKModalityModifier, data: D): JKModalityModifier = visitModifier(modalityModifier, data) as JKModalityModifier
override fun visitJavaField(javaField: JKJavaField, data: D): JKDeclaration = visitDeclaration(javaField, data)
override fun visitJavaMethod(javaMethod: JKJavaMethod, data: D): JKDeclaration = visitDeclaration(javaMethod, data)
override fun visitJavaForLoop(javaForLoop: JKJavaForLoop, data: D): JKLoop = visitLoop(javaForLoop, data)
override fun visitJavaAssignmentExpression(javaAssignmentExpression: JKJavaAssignmentExpression, data: D): JKExpression = visitExpression(javaAssignmentExpression, data)
override fun visitJavaTypeIdentifier(javaTypeIdentifier: JKJavaTypeIdentifier, data: D): JKTypeIdentifier = visitTypeIdentifier(javaTypeIdentifier, data)
override fun visitJavaStringLiteralExpression(javaStringLiteralExpression: JKJavaStringLiteralExpression, data: D): JKLiteralExpression = visitLiteralExpression(javaStringLiteralExpression, data)
override fun visitJavaOperatorIdentifier(javaOperatorIdentifier: JKJavaOperatorIdentifier, data: D): JKOperatorIdentifier = visitOperatorIdentifier(javaOperatorIdentifier, data)
override fun visitJavaQualificationIdentifier(javaQualificationIdentifier: JKJavaQualificationIdentifier, data: D): JKQualificationIdentifier = visitQualificationIdentifier(javaQualificationIdentifier, data)
override fun visitJavaMethodCallExpression(javaMethodCallExpression: JKJavaMethodCallExpression, data: D): JKMethodCallExpression = visitMethodCallExpression(javaMethodCallExpression, data)
override fun visitJavaFieldAccessExpression(javaFieldAccessExpression: JKJavaFieldAccessExpression, data: D): JKFieldAccessExpression = visitFieldAccessExpression(javaFieldAccessExpression, data)
override fun visitJavaNewExpression(javaNewExpression: JKJavaNewExpression, data: D): JKExpression = visitExpression(javaNewExpression, data)
override fun visitJavaMethodReference(javaMethodReference: JKJavaMethodReference, data: D): JKMethodReference = visitMethodReference(javaMethodReference, data)
override fun visitJavaFieldReference(javaFieldReference: JKJavaFieldReference, data: D): JKFieldReference = visitFieldReference(javaFieldReference, data)
override fun visitJavaClassReference(javaClassReference: JKJavaClassReference, data: D): JKClassReference = visitClassReference(javaClassReference, data)
override fun visitJavaAccessModifier(javaAccessModifier: JKJavaAccessModifier, data: D): JKAccessModifier = visitAccessModifier(javaAccessModifier, data)
override fun visitJavaModifier(javaModifier: JKJavaModifier, data: D): JKModifier = visitModifier(javaModifier, data)
override fun visitJavaNewEmptyArray(javaNewEmptyArray: JKJavaNewEmptyArray, data: D): JKExpression = visitExpression(javaNewEmptyArray, data)
override fun visitJavaNewArray(javaNewArray: JKJavaNewArray, data: D): JKExpression = visitExpression(javaNewArray, data)
override fun visitKtFun(ktFun: JKKtFun, data: D): JKDeclaration = visitDeclaration(ktFun, data)
override fun visitKtConstructor(ktConstructor: JKKtConstructor, data: D): JKDeclaration = visitDeclaration(ktConstructor, data)
override fun visitKtPrimaryConstructor(ktPrimaryConstructor: JKKtPrimaryConstructor, data: D): JKDeclaration = visitKtConstructor(ktPrimaryConstructor, data)
override fun visitKtAssignmentStatement(ktAssignmentStatement: JKKtAssignmentStatement, data: D): JKStatement = visitStatement(ktAssignmentStatement, data)
override fun visitKtCall(ktCall: JKKtCall, data: D): JKMethodCallExpression = visitMethodCallExpression(ktCall, data)
override fun visitKtProperty(ktProperty: JKKtProperty, data: D): JKDeclaration = visitDeclaration(ktProperty, data)
}
@@ -3,7 +3,7 @@ package org.jetbrains.kotlin.j2k.tree.visitors
import org.jetbrains.kotlin.j2k.tree.*
interface JKTransformerVoid : JKTransformer<Nothing?> {
fun visitElement(element: JKElement): JKElement
fun visitElement(element: JKElement): JKElement
override fun visitElement(element: JKElement, data: Nothing?): JKElement = visitElement(element)
fun visitClass(klass: JKClass): JKClass = visitDeclaration(klass) as JKClass
override fun visitClass(klass: JKClass, data: Nothing?): JKClass = visitClass(klass)
@@ -11,14 +11,46 @@ interface JKTransformerVoid : JKTransformer<Nothing?> {
override fun visitStatement(statement: JKStatement, data: Nothing?): JKStatement = visitStatement(statement)
fun visitExpression(expression: JKExpression): JKExpression = visitStatement(expression) as JKExpression
override fun visitExpression(expression: JKExpression, data: Nothing?): JKExpression = visitExpression(expression)
fun visitBinaryExpression(binaryExpression: JKBinaryExpression): JKBinaryExpression = visitExpression(binaryExpression) as JKBinaryExpression
override fun visitBinaryExpression(binaryExpression: JKBinaryExpression, data: Nothing?): JKBinaryExpression = visitBinaryExpression(binaryExpression)
fun visitUnaryExpression(unaryExpression: JKUnaryExpression): JKUnaryExpression = visitExpression(unaryExpression) as JKUnaryExpression
override fun visitUnaryExpression(unaryExpression: JKUnaryExpression, data: Nothing?): JKUnaryExpression = visitUnaryExpression(unaryExpression)
fun visitPrefixExpression(prefixExpression: JKPrefixExpression): JKPrefixExpression = visitUnaryExpression(prefixExpression) as JKPrefixExpression
override fun visitPrefixExpression(prefixExpression: JKPrefixExpression, data: Nothing?): JKPrefixExpression = visitPrefixExpression(prefixExpression)
fun visitPostfixExpression(postfixExpression: JKPostfixExpression): JKPostfixExpression = visitUnaryExpression(postfixExpression) as JKPostfixExpression
override fun visitPostfixExpression(postfixExpression: JKPostfixExpression, data: Nothing?): JKPostfixExpression = visitPostfixExpression(postfixExpression)
fun visitQualifiedExpression(qualifiedExpression: JKQualifiedExpression): JKQualifiedExpression = visitExpression(qualifiedExpression) as JKQualifiedExpression
override fun visitQualifiedExpression(qualifiedExpression: JKQualifiedExpression, data: Nothing?): JKQualifiedExpression = visitQualifiedExpression(qualifiedExpression)
fun visitMethodCallExpression(methodCallExpression: JKMethodCallExpression): JKMethodCallExpression = visitExpression(methodCallExpression) as JKMethodCallExpression
override fun visitMethodCallExpression(methodCallExpression: JKMethodCallExpression, data: Nothing?): JKMethodCallExpression = visitMethodCallExpression(methodCallExpression)
fun visitFieldAccessExpression(fieldAccessExpression: JKFieldAccessExpression): JKFieldAccessExpression = visitExpression(fieldAccessExpression) as JKFieldAccessExpression
override fun visitFieldAccessExpression(fieldAccessExpression: JKFieldAccessExpression, data: Nothing?): JKFieldAccessExpression = visitFieldAccessExpression(fieldAccessExpression)
fun visitArrayAccessExpression(arrayAccessExpression: JKArrayAccessExpression): JKArrayAccessExpression = visitExpression(arrayAccessExpression) as JKArrayAccessExpression
override fun visitArrayAccessExpression(arrayAccessExpression: JKArrayAccessExpression, data: Nothing?): JKArrayAccessExpression = visitArrayAccessExpression(arrayAccessExpression)
fun visitParenthesizedExpression(parenthesizedExpression: JKParenthesizedExpression): JKParenthesizedExpression = visitExpression(parenthesizedExpression) as JKParenthesizedExpression
override fun visitParenthesizedExpression(parenthesizedExpression: JKParenthesizedExpression, data: Nothing?): JKParenthesizedExpression = visitParenthesizedExpression(parenthesizedExpression)
fun visitTypeCastExpression(typeCastExpression: JKTypeCastExpression): JKTypeCastExpression = visitExpression(typeCastExpression) as JKTypeCastExpression
override fun visitTypeCastExpression(typeCastExpression: JKTypeCastExpression, data: Nothing?): JKTypeCastExpression = visitTypeCastExpression(typeCastExpression)
fun visitExpressionList(expressionList: JKExpressionList): JKExpressionList = visitElement(expressionList) as JKExpressionList
override fun visitExpressionList(expressionList: JKExpressionList, data: Nothing?): JKExpressionList = visitExpressionList(expressionList)
fun visitMethodReference(methodReference: JKMethodReference): JKMethodReference = visitElement(methodReference) as JKMethodReference
override fun visitMethodReference(methodReference: JKMethodReference, data: Nothing?): JKMethodReference = visitMethodReference(methodReference)
fun visitFieldReference(fieldReference: JKFieldReference): JKFieldReference = visitElement(fieldReference) as JKFieldReference
override fun visitFieldReference(fieldReference: JKFieldReference, data: Nothing?): JKFieldReference = visitFieldReference(fieldReference)
fun visitClassReference(classReference: JKClassReference): JKClassReference = visitElement(classReference) as JKClassReference
override fun visitClassReference(classReference: JKClassReference, data: Nothing?): JKClassReference = visitClassReference(classReference)
fun visitTypeReference(typeReference: JKTypeReference): JKTypeReference = visitElement(typeReference) as JKTypeReference
override fun visitTypeReference(typeReference: JKTypeReference, data: Nothing?): JKTypeReference = visitTypeReference(typeReference)
fun visitOperatorIdentifier(operatorIdentifier: JKOperatorIdentifier): JKOperatorIdentifier = visitIdentifier(operatorIdentifier) as JKOperatorIdentifier
override fun visitOperatorIdentifier(operatorIdentifier: JKOperatorIdentifier, data: Nothing?): JKOperatorIdentifier = visitOperatorIdentifier(operatorIdentifier)
fun visitQualificationIdentifier(qualificationIdentifier: JKQualificationIdentifier): JKQualificationIdentifier = visitIdentifier(qualificationIdentifier) as JKQualificationIdentifier
override fun visitQualificationIdentifier(qualificationIdentifier: JKQualificationIdentifier, data: Nothing?): JKQualificationIdentifier = visitQualificationIdentifier(qualificationIdentifier)
fun visitLoop(loop: JKLoop): JKLoop = visitStatement(loop) as JKLoop
override fun visitLoop(loop: JKLoop, data: Nothing?): JKLoop = visitLoop(loop)
fun visitDeclaration(declaration: JKDeclaration): JKDeclaration = visitElement(declaration) as JKDeclaration
override fun visitDeclaration(declaration: JKDeclaration, data: Nothing?): JKDeclaration = visitDeclaration(declaration)
fun visitBlock(block: JKBlock): JKBlock = visitElement(block) as JKBlock
override fun visitBlock(block: JKBlock, data: Nothing?): JKBlock = visitBlock(block)
fun visitCall(call: JKCall): JKCall = visitExpression(call) as JKCall
override fun visitCall(call: JKCall, data: Nothing?): JKCall = visitCall(call)
fun visitIdentifier(identifier: JKIdentifier): JKIdentifier = visitElement(identifier) as JKIdentifier
override fun visitIdentifier(identifier: JKIdentifier, data: Nothing?): JKIdentifier = visitIdentifier(identifier)
fun visitTypeIdentifier(typeIdentifier: JKTypeIdentifier): JKTypeIdentifier = visitIdentifier(typeIdentifier) as JKTypeIdentifier
@@ -39,34 +71,52 @@ interface JKTransformerVoid : JKTransformer<Nothing?> {
override fun visitStringLiteralExpression(stringLiteralExpression: JKStringLiteralExpression, data: Nothing?): JKStringLiteralExpression = visitStringLiteralExpression(stringLiteralExpression)
fun visitModalityModifier(modalityModifier: JKModalityModifier): JKModalityModifier = visitModifier(modalityModifier) as JKModalityModifier
override fun visitModalityModifier(modalityModifier: JKModalityModifier, data: Nothing?): JKModalityModifier = visitModalityModifier(modalityModifier)
fun visitJavaField(javaField: JKJavaField): JKDeclaration = visitDeclaration(javaField)
fun visitJavaField(javaField: JKJavaField): JKDeclaration = visitDeclaration(javaField)
override fun visitJavaField(javaField: JKJavaField, data: Nothing?): JKDeclaration = visitJavaField(javaField)
fun visitJavaMethod(javaMethod: JKJavaMethod): JKDeclaration = visitDeclaration(javaMethod)
fun visitJavaMethod(javaMethod: JKJavaMethod): JKDeclaration = visitDeclaration(javaMethod)
override fun visitJavaMethod(javaMethod: JKJavaMethod, data: Nothing?): JKDeclaration = visitJavaMethod(javaMethod)
fun visitJavaForLoop(javaForLoop: JKJavaForLoop): JKLoop = visitLoop(javaForLoop)
fun visitJavaForLoop(javaForLoop: JKJavaForLoop): JKLoop = visitLoop(javaForLoop)
override fun visitJavaForLoop(javaForLoop: JKJavaForLoop, data: Nothing?): JKLoop = visitJavaForLoop(javaForLoop)
fun visitJavaAssignmentExpression(javaAssignmentExpression: JKJavaAssignmentExpression): JKExpression = visitExpression(javaAssignmentExpression)
fun visitJavaAssignmentExpression(javaAssignmentExpression: JKJavaAssignmentExpression): JKExpression = visitExpression(javaAssignmentExpression)
override fun visitJavaAssignmentExpression(javaAssignmentExpression: JKJavaAssignmentExpression, data: Nothing?): JKExpression = visitJavaAssignmentExpression(javaAssignmentExpression)
fun visitJavaCall(javaCall: JKJavaCall): JKCall = visitCall(javaCall)
override fun visitJavaCall(javaCall: JKJavaCall, data: Nothing?): JKCall = visitJavaCall(javaCall)
fun visitJavaTypeIdentifier(javaTypeIdentifier: JKJavaTypeIdentifier): JKTypeIdentifier = visitTypeIdentifier(javaTypeIdentifier)
fun visitJavaTypeIdentifier(javaTypeIdentifier: JKJavaTypeIdentifier): JKTypeIdentifier = visitTypeIdentifier(javaTypeIdentifier)
override fun visitJavaTypeIdentifier(javaTypeIdentifier: JKJavaTypeIdentifier, data: Nothing?): JKTypeIdentifier = visitJavaTypeIdentifier(javaTypeIdentifier)
fun visitJavaStringLiteralExpression(javaStringLiteralExpression: JKJavaStringLiteralExpression): JKLiteralExpression = visitLiteralExpression(javaStringLiteralExpression)
fun visitJavaStringLiteralExpression(javaStringLiteralExpression: JKJavaStringLiteralExpression): JKLiteralExpression = visitLiteralExpression(javaStringLiteralExpression)
override fun visitJavaStringLiteralExpression(javaStringLiteralExpression: JKJavaStringLiteralExpression, data: Nothing?): JKLiteralExpression = visitJavaStringLiteralExpression(javaStringLiteralExpression)
fun visitJavaAccessModifier(javaAccessModifier: JKJavaAccessModifier): JKAccessModifier = visitAccessModifier(javaAccessModifier)
fun visitJavaOperatorIdentifier(javaOperatorIdentifier: JKJavaOperatorIdentifier): JKOperatorIdentifier = visitOperatorIdentifier(javaOperatorIdentifier)
override fun visitJavaOperatorIdentifier(javaOperatorIdentifier: JKJavaOperatorIdentifier, data: Nothing?): JKOperatorIdentifier = visitJavaOperatorIdentifier(javaOperatorIdentifier)
fun visitJavaQualificationIdentifier(javaQualificationIdentifier: JKJavaQualificationIdentifier): JKQualificationIdentifier = visitQualificationIdentifier(javaQualificationIdentifier)
override fun visitJavaQualificationIdentifier(javaQualificationIdentifier: JKJavaQualificationIdentifier, data: Nothing?): JKQualificationIdentifier = visitJavaQualificationIdentifier(javaQualificationIdentifier)
fun visitJavaMethodCallExpression(javaMethodCallExpression: JKJavaMethodCallExpression): JKMethodCallExpression = visitMethodCallExpression(javaMethodCallExpression)
override fun visitJavaMethodCallExpression(javaMethodCallExpression: JKJavaMethodCallExpression, data: Nothing?): JKMethodCallExpression = visitJavaMethodCallExpression(javaMethodCallExpression)
fun visitJavaFieldAccessExpression(javaFieldAccessExpression: JKJavaFieldAccessExpression): JKFieldAccessExpression = visitFieldAccessExpression(javaFieldAccessExpression)
override fun visitJavaFieldAccessExpression(javaFieldAccessExpression: JKJavaFieldAccessExpression, data: Nothing?): JKFieldAccessExpression = visitJavaFieldAccessExpression(javaFieldAccessExpression)
fun visitJavaNewExpression(javaNewExpression: JKJavaNewExpression): JKExpression = visitExpression(javaNewExpression)
override fun visitJavaNewExpression(javaNewExpression: JKJavaNewExpression, data: Nothing?): JKExpression = visitJavaNewExpression(javaNewExpression)
fun visitJavaMethodReference(javaMethodReference: JKJavaMethodReference): JKMethodReference = visitMethodReference(javaMethodReference)
override fun visitJavaMethodReference(javaMethodReference: JKJavaMethodReference, data: Nothing?): JKMethodReference = visitJavaMethodReference(javaMethodReference)
fun visitJavaFieldReference(javaFieldReference: JKJavaFieldReference): JKFieldReference = visitFieldReference(javaFieldReference)
override fun visitJavaFieldReference(javaFieldReference: JKJavaFieldReference, data: Nothing?): JKFieldReference = visitJavaFieldReference(javaFieldReference)
fun visitJavaClassReference(javaClassReference: JKJavaClassReference): JKClassReference = visitClassReference(javaClassReference)
override fun visitJavaClassReference(javaClassReference: JKJavaClassReference, data: Nothing?): JKClassReference = visitJavaClassReference(javaClassReference)
fun visitJavaAccessModifier(javaAccessModifier: JKJavaAccessModifier): JKAccessModifier = visitAccessModifier(javaAccessModifier)
override fun visitJavaAccessModifier(javaAccessModifier: JKJavaAccessModifier, data: Nothing?): JKAccessModifier = visitJavaAccessModifier(javaAccessModifier)
fun visitJavaModifier(javaModifier: JKJavaModifier): JKModifier = visitModifier(javaModifier)
fun visitJavaModifier(javaModifier: JKJavaModifier): JKModifier = visitModifier(javaModifier)
override fun visitJavaModifier(javaModifier: JKJavaModifier, data: Nothing?): JKModifier = visitJavaModifier(javaModifier)
fun visitKtFun(ktFun: JKKtFun): JKDeclaration = visitDeclaration(ktFun)
fun visitJavaNewEmptyArray(javaNewEmptyArray: JKJavaNewEmptyArray): JKExpression = visitExpression(javaNewEmptyArray)
override fun visitJavaNewEmptyArray(javaNewEmptyArray: JKJavaNewEmptyArray, data: Nothing?): JKExpression = visitJavaNewEmptyArray(javaNewEmptyArray)
fun visitJavaNewArray(javaNewArray: JKJavaNewArray): JKExpression = visitExpression(javaNewArray)
override fun visitJavaNewArray(javaNewArray: JKJavaNewArray, data: Nothing?): JKExpression = visitJavaNewArray(javaNewArray)
fun visitKtFun(ktFun: JKKtFun): JKDeclaration = visitDeclaration(ktFun)
override fun visitKtFun(ktFun: JKKtFun, data: Nothing?): JKDeclaration = visitKtFun(ktFun)
fun visitKtConstructor(ktConstructor: JKKtConstructor): JKDeclaration = visitDeclaration(ktConstructor)
fun visitKtConstructor(ktConstructor: JKKtConstructor): JKDeclaration = visitDeclaration(ktConstructor)
override fun visitKtConstructor(ktConstructor: JKKtConstructor, data: Nothing?): JKDeclaration = visitKtConstructor(ktConstructor)
fun visitKtPrimaryConstructor(ktPrimaryConstructor: JKKtPrimaryConstructor): JKDeclaration = visitKtConstructor(ktPrimaryConstructor)
fun visitKtPrimaryConstructor(ktPrimaryConstructor: JKKtPrimaryConstructor): JKDeclaration = visitKtConstructor(ktPrimaryConstructor)
override fun visitKtPrimaryConstructor(ktPrimaryConstructor: JKKtPrimaryConstructor, data: Nothing?): JKDeclaration = visitKtPrimaryConstructor(ktPrimaryConstructor)
fun visitKtAssignmentStatement(ktAssignmentStatement: JKKtAssignmentStatement): JKStatement = visitStatement(ktAssignmentStatement)
fun visitKtAssignmentStatement(ktAssignmentStatement: JKKtAssignmentStatement): JKStatement = visitStatement(ktAssignmentStatement)
override fun visitKtAssignmentStatement(ktAssignmentStatement: JKKtAssignmentStatement, data: Nothing?): JKStatement = visitKtAssignmentStatement(ktAssignmentStatement)
fun visitKtCall(ktCall: JKKtCall): JKCall = visitCall(ktCall)
override fun visitKtCall(ktCall: JKKtCall, data: Nothing?): JKCall = visitKtCall(ktCall)
fun visitKtProperty(ktProperty: JKKtProperty): JKDeclaration = visitDeclaration(ktProperty)
fun visitKtCall(ktCall: JKKtCall): JKMethodCallExpression = visitMethodCallExpression(ktCall)
override fun visitKtCall(ktCall: JKKtCall, data: Nothing?): JKMethodCallExpression = visitKtCall(ktCall)
fun visitKtProperty(ktProperty: JKKtProperty): JKDeclaration = visitDeclaration(ktProperty)
override fun visitKtProperty(ktProperty: JKKtProperty, data: Nothing?): JKDeclaration = visitKtProperty(ktProperty)
}
@@ -14,11 +14,14 @@ interface JKVisitor<out R, in D> {
fun visitQualifiedExpression(qualifiedExpression: JKQualifiedExpression, data: D): R = visitExpression(qualifiedExpression, data)
fun visitMethodCallExpression(methodCallExpression: JKMethodCallExpression, data: D): R = visitExpression(methodCallExpression, data)
fun visitFieldAccessExpression(fieldAccessExpression: JKFieldAccessExpression, data: D): R = visitExpression(fieldAccessExpression, data)
fun visitNewExpression(newExpression: JKNewExpression, data: D): R = visitExpression(newExpression, data)
fun visitArrayAccessExpression(arrayAccessExpression: JKArrayAccessExpression, data: D): R = visitExpression(arrayAccessExpression, data)
fun visitParenthesizedExpression(parenthesizedExpression: JKParenthesizedExpression, data: D): R = visitExpression(parenthesizedExpression, data)
fun visitTypeCastExpression(typeCastExpression: JKTypeCastExpression, data: D): R = visitExpression(typeCastExpression, data)
fun visitExpressionList(expressionList: JKExpressionList, data: D): R = visitElement(expressionList, data)
fun visitMethodReference(methodReference: JKMethodReference, data: D): R = visitElement(methodReference, data)
fun visitFieldReference(fieldReference: JKFieldReference, data: D): R = visitElement(fieldReference, data)
fun visitClassReference(classReference: JKClassReference, data: D): R = visitElement(classReference, data)
fun visitTypeReference(typeReference: JKTypeReference, data: D): R = visitElement(typeReference, data)
fun visitOperatorIdentifier(operatorIdentifier: JKOperatorIdentifier, data: D): R = visitIdentifier(operatorIdentifier, data)
fun visitQualificationIdentifier(qualificationIdentifier: JKQualificationIdentifier, data: D): R = visitIdentifier(qualificationIdentifier, data)
fun visitLoop(loop: JKLoop, data: D): R = visitStatement(loop, data)
@@ -31,6 +34,9 @@ interface JKVisitor<out R, in D> {
fun visitModifierList(modifierList: JKModifierList, data: D): R = visitElement(modifierList, data)
fun visitModifier(modifier: JKModifier, data: D): R = visitElement(modifier, data)
fun visitAccessModifier(accessModifier: JKAccessModifier, data: D): R = visitModifier(accessModifier, data)
fun visitValueArgument(valueArgument: JKValueArgument, data: D): R = visitElement(valueArgument, data)
fun visitStringLiteralExpression(stringLiteralExpression: JKStringLiteralExpression, data: D): R = visitLiteralExpression(stringLiteralExpression, data)
fun visitModalityModifier(modalityModifier: JKModalityModifier, data: D): R = visitModifier(modalityModifier, data)
fun visitJavaField(javaField: JKJavaField, data: D): R = visitDeclaration(javaField, data)
fun visitJavaMethod(javaMethod: JKJavaMethod, data: D): R = visitDeclaration(javaMethod, data)
fun visitJavaForLoop(javaForLoop: JKJavaForLoop, data: D): R = visitLoop(javaForLoop, data)
@@ -41,13 +47,18 @@ interface JKVisitor<out R, in D> {
fun visitJavaQualificationIdentifier(javaQualificationIdentifier: JKJavaQualificationIdentifier, data: D): R = visitQualificationIdentifier(javaQualificationIdentifier, data)
fun visitJavaMethodCallExpression(javaMethodCallExpression: JKJavaMethodCallExpression, data: D): R = visitMethodCallExpression(javaMethodCallExpression, data)
fun visitJavaFieldAccessExpression(javaFieldAccessExpression: JKJavaFieldAccessExpression, data: D): R = visitFieldAccessExpression(javaFieldAccessExpression, data)
fun visitJavaNewExpression(javaNewExpression: JKJavaNewExpression, data: D): R = visitNewExpression(javaNewExpression, data)
fun visitJavaNewExpression(javaNewExpression: JKJavaNewExpression, data: D): R = visitExpression(javaNewExpression, data)
fun visitJavaMethodReference(javaMethodReference: JKJavaMethodReference, data: D): R = visitMethodReference(javaMethodReference, data)
fun visitJavaFieldReference(javaFieldReference: JKJavaFieldReference, data: D): R = visitFieldReference(javaFieldReference, data)
fun visitJavaClassReference(javaClassReference: JKJavaClassReference, data: D): R = visitClassReference(javaClassReference, data)
fun visitJavaAccessModifier(javaAccessModifier: JKJavaAccessModifier, data: D): R = visitAccessModifier(javaAccessModifier, data)
fun visitJavaModifier(javaModifier: JKJavaModifier, data: D): R = visitModifier(javaModifier, data)
fun visitJavaNewEmptyArray(javaNewEmptyArray: JKJavaNewEmptyArray, data: D): R = visitExpression(javaNewEmptyArray, data)
fun visitJavaNewArray(javaNewArray: JKJavaNewArray, data: D): R = visitExpression(javaNewArray, data)
fun visitKtFun(ktFun: JKKtFun, data: D): R = visitDeclaration(ktFun, data)
fun visitKtConstructor(ktConstructor: JKKtConstructor, data: D): R = visitDeclaration(ktConstructor, data)
fun visitKtPrimaryConstructor(ktPrimaryConstructor: JKKtPrimaryConstructor, data: D): R = visitKtConstructor(ktPrimaryConstructor, data)
fun visitKtAssignmentStatement(ktAssignmentStatement: JKKtAssignmentStatement, data: D): R = visitStatement(ktAssignmentStatement, data)
fun visitKtCall(ktCall: JKKtCall, data: D): R = visitMethodCallExpression(ktCall, data)
fun visitKtProperty(ktProperty: JKKtProperty, data: D): R = visitDeclaration(ktProperty, data)
}
@@ -51,8 +51,6 @@ interface JKVisitorVoid : JKVisitor<Unit, Nothing?> {
override fun visitDeclaration(declaration: JKDeclaration, data: Nothing?) = visitDeclaration(declaration)
fun visitBlock(block: JKBlock) = visitElement(block, null)
override fun visitBlock(block: JKBlock, data: Nothing?) = visitBlock(block)
fun visitCall(call: JKCall) = visitExpression(call, null)
override fun visitCall(call: JKCall, data: Nothing?) = visitCall(call)
fun visitIdentifier(identifier: JKIdentifier) = visitElement(identifier, null)
override fun visitIdentifier(identifier: JKIdentifier, data: Nothing?) = visitIdentifier(identifier)
fun visitTypeIdentifier(typeIdentifier: JKTypeIdentifier) = visitIdentifier(typeIdentifier, null)
@@ -67,6 +65,12 @@ interface JKVisitorVoid : JKVisitor<Unit, Nothing?> {
override fun visitModifier(modifier: JKModifier, data: Nothing?) = visitModifier(modifier)
fun visitAccessModifier(accessModifier: JKAccessModifier) = visitModifier(accessModifier, null)
override fun visitAccessModifier(accessModifier: JKAccessModifier, data: Nothing?) = visitAccessModifier(accessModifier)
fun visitValueArgument(valueArgument: JKValueArgument) = visitElement(valueArgument, null)
override fun visitValueArgument(valueArgument: JKValueArgument, data: Nothing?) = visitValueArgument(valueArgument)
fun visitStringLiteralExpression(stringLiteralExpression: JKStringLiteralExpression) = visitLiteralExpression(stringLiteralExpression, null)
override fun visitStringLiteralExpression(stringLiteralExpression: JKStringLiteralExpression, data: Nothing?) = visitStringLiteralExpression(stringLiteralExpression)
fun visitModalityModifier(modalityModifier: JKModalityModifier) = visitModifier(modalityModifier, null)
override fun visitModalityModifier(modalityModifier: JKModalityModifier, data: Nothing?) = visitModalityModifier(modalityModifier)
fun visitJavaField(javaField: JKJavaField) = visitDeclaration(javaField, null)
override fun visitJavaField(javaField: JKJavaField, data: Nothing?) = visitJavaField(javaField)
fun visitJavaMethod(javaMethod: JKJavaMethod) = visitDeclaration(javaMethod, null)
@@ -75,8 +79,6 @@ interface JKVisitorVoid : JKVisitor<Unit, Nothing?> {
override fun visitJavaForLoop(javaForLoop: JKJavaForLoop, data: Nothing?) = visitJavaForLoop(javaForLoop)
fun visitJavaAssignmentExpression(javaAssignmentExpression: JKJavaAssignmentExpression) = visitExpression(javaAssignmentExpression, null)
override fun visitJavaAssignmentExpression(javaAssignmentExpression: JKJavaAssignmentExpression, data: Nothing?) = visitJavaAssignmentExpression(javaAssignmentExpression)
fun visitJavaCall(javaCall: JKJavaCall) = visitCall(javaCall, null)
override fun visitJavaCall(javaCall: JKJavaCall, data: Nothing?) = visitJavaCall(javaCall)
fun visitJavaTypeIdentifier(javaTypeIdentifier: JKJavaTypeIdentifier) = visitTypeIdentifier(javaTypeIdentifier, null)
override fun visitJavaTypeIdentifier(javaTypeIdentifier: JKJavaTypeIdentifier, data: Nothing?) = visitJavaTypeIdentifier(javaTypeIdentifier)
fun visitJavaStringLiteralExpression(javaStringLiteralExpression: JKJavaStringLiteralExpression) = visitLiteralExpression(javaStringLiteralExpression, null)
@@ -99,6 +101,8 @@ interface JKVisitorVoid : JKVisitor<Unit, Nothing?> {
override fun visitJavaClassReference(javaClassReference: JKJavaClassReference, data: Nothing?) = visitJavaClassReference(javaClassReference)
fun visitJavaAccessModifier(javaAccessModifier: JKJavaAccessModifier) = visitAccessModifier(javaAccessModifier, null)
override fun visitJavaAccessModifier(javaAccessModifier: JKJavaAccessModifier, data: Nothing?) = visitJavaAccessModifier(javaAccessModifier)
fun visitJavaModifier(javaModifier: JKJavaModifier) = visitModifier(javaModifier, null)
override fun visitJavaModifier(javaModifier: JKJavaModifier, data: Nothing?) = visitJavaModifier(javaModifier)
fun visitJavaNewEmptyArray(javaNewEmptyArray: JKJavaNewEmptyArray) = visitExpression(javaNewEmptyArray, null)
override fun visitJavaNewEmptyArray(javaNewEmptyArray: JKJavaNewEmptyArray, data: Nothing?) = visitJavaNewEmptyArray(javaNewEmptyArray)
fun visitJavaNewArray(javaNewArray: JKJavaNewArray) = visitExpression(javaNewArray, null)
@@ -111,6 +115,8 @@ interface JKVisitorVoid : JKVisitor<Unit, Nothing?> {
override fun visitKtPrimaryConstructor(ktPrimaryConstructor: JKKtPrimaryConstructor, data: Nothing?) = visitKtPrimaryConstructor(ktPrimaryConstructor)
fun visitKtAssignmentStatement(ktAssignmentStatement: JKKtAssignmentStatement) = visitStatement(ktAssignmentStatement, null)
override fun visitKtAssignmentStatement(ktAssignmentStatement: JKKtAssignmentStatement, data: Nothing?) = visitKtAssignmentStatement(ktAssignmentStatement)
fun visitKtCall(ktCall: JKKtCall) = visitCall(ktCall, null)
fun visitKtCall(ktCall: JKKtCall) = visitMethodCallExpression(ktCall, null)
override fun visitKtCall(ktCall: JKKtCall, data: Nothing?) = visitKtCall(ktCall)
fun visitKtProperty(ktProperty: JKKtProperty) = visitDeclaration(ktProperty, null)
override fun visitKtProperty(ktProperty: JKKtProperty, data: Nothing?) = visitKtProperty(ktProperty)
}