some quick conversions

This commit is contained in:
Dmitry Jemerov
2012-05-25 21:27:17 +02:00
committed by Pavel V. Talanov
parent 3977db1472
commit dd09affd9c
12 changed files with 57 additions and 235 deletions
@@ -1,38 +0,0 @@
/*
* Copyright 2010-2012 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.jet.j2k.ast;
import org.jetbrains.annotations.NotNull;
/**
* @author ignatov
*/
public class CatchStatement extends Statement {
private final Parameter myVariable;
private final Block myBlock;
public CatchStatement(Parameter variable, Block block) {
myVariable = variable;
myBlock = block;
}
@NotNull
@Override
public String toKotlin() {
return "catch" + SPACE + "(" + myVariable.toKotlin() + ")" + SPACE + myBlock.toKotlin();
}
}
@@ -0,0 +1,8 @@
package org.jetbrains.jet.j2k.ast
public open class CatchStatement(val variable: Parameter, val block: Block): Statement() {
public override fun toKotlin(): String {
return "catch (" + variable.toKotlin() + ") " + block.toKotlin()
}
}
@@ -1,36 +0,0 @@
/*
* Copyright 2010-2012 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.jet.j2k.ast;
import org.jetbrains.annotations.NotNull;
/**
* @author ignatov
*/
public class ClassObjectAccessExpression extends Expression {
private final Element myTypeElement;
public ClassObjectAccessExpression(Element typeElement) {
myTypeElement = typeElement;
}
@NotNull
@Override
public String toKotlin() {
return "getJavaClass" + "<" + myTypeElement.toKotlin() + ">";
}
}
@@ -0,0 +1,8 @@
package org.jetbrains.jet.j2k.ast
public open class ClassObjectAccessExpression(val typeElement: Element): Expression() {
public override fun toKotlin(): String {
return "getJavaClass<" + typeElement.toKotlin() + ">"
}
}
@@ -1,56 +0,0 @@
/*
* Copyright 2010-2012 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.jet.j2k.ast;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.j2k.util.AstUtil;
import java.util.LinkedList;
import java.util.List;
/**
* @author ignatov
*/
public class DeclarationStatement extends Statement {
private final List<Element> myElements;
public DeclarationStatement(List<Element> elements) {
myElements = elements;
}
@NotNull
private static List<String> toStringList(@NotNull List<Element> elements) {
List<String> result = new LinkedList<String>();
for (Element e : elements) {
if (e instanceof LocalVariable) {
LocalVariable v = (LocalVariable) e;
final String varKeyword = v.hasModifier(Modifier.FINAL) ? "val" : "var";
result.add(
varKeyword + SPACE + e.toKotlin()
);
}
}
return result;
}
@NotNull
@Override
public String toKotlin() {
return AstUtil.join(toStringList(myElements), N);
}
}
@@ -0,0 +1,19 @@
package org.jetbrains.jet.j2k.ast
import org.jetbrains.jet.j2k.util.AstUtil
import java.util.LinkedList
import java.util.List
public open class DeclarationStatement(val elements: List<Element>): Statement() {
public override fun toKotlin(): String {
return elements.filter { it is LocalVariable }.map { convertDeclaration(it as LocalVariable) }.makeString("\n")
}
private fun convertDeclaration(v: LocalVariable): String {
val varKeyword: String? = (if (v.hasModifier(Modifier.FINAL))
"val"
else
"var")
return varKeyword + " " + v.toKotlin()
}
}
@@ -1,30 +0,0 @@
/*
* Copyright 2010-2012 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.jet.j2k.ast;
import org.jetbrains.annotations.NotNull;
/**
* @author ignatov
*/
public class DefaultSwitchLabelStatement extends Statement {
@NotNull
@Override
public String toKotlin() {
return "else";
}
}
@@ -0,0 +1,6 @@
package org.jetbrains.jet.j2k.ast
public open class DefaultSwitchLabelStatement(): Statement() {
public override fun toKotlin() = "else"
}
@@ -1,36 +0,0 @@
/*
* Copyright 2010-2012 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.jet.j2k.ast;
import org.jetbrains.annotations.NotNull;
/**
* @author ignatov
*/
public class DoWhileStatement extends WhileStatement {
public DoWhileStatement(Expression condition, Statement statement) {
super(condition, statement);
}
@NotNull
@Override
public String toKotlin() {
return "do" + N +
myStatement.toKotlin() + N +
"while" + SPACE + "(" + myCondition.toKotlin() + ")";
}
}
@@ -0,0 +1,8 @@
package org.jetbrains.jet.j2k.ast
public open class DoWhileStatement(condition: Expression, statement: Statement): WhileStatement(condition, statement) {
public override fun toKotlin(): String {
return "do\n" + statement.toKotlin() + "\nwhile (" + condition.toKotlin() + ")"
}
}
@@ -1,39 +0,0 @@
/*
* Copyright 2010-2012 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.jet.j2k.ast;
import org.jetbrains.annotations.NotNull;
/**
* @author ignatov
*/
public class WhileStatement extends Statement {
final Expression myCondition;
final Statement myStatement;
public WhileStatement(Expression condition, Statement statement) {
myCondition = condition;
myStatement = statement;
}
@NotNull
@Override
public String toKotlin() {
return "while" + SPACE + "(" + myCondition.toKotlin() + ")" + N +
myStatement.toKotlin();
}
}
@@ -0,0 +1,8 @@
package org.jetbrains.jet.j2k.ast
public open class WhileStatement(val condition: Expression, val statement: Statement): Statement() {
public override fun toKotlin(): String {
return "while (" + condition.toKotlin() + ")\n" + statement.toKotlin()
}
}