diff --git a/.idea/dictionaries/max.xml b/.idea/dictionaries/max.xml new file mode 100644 index 00000000000..59b317d1177 --- /dev/null +++ b/.idea/dictionaries/max.xml @@ -0,0 +1,7 @@ + + + + codegen + + + \ No newline at end of file diff --git a/idea/src/org/jetbrains/jet/codegen/ClassVisitorFactory.java b/idea/src/org/jetbrains/jet/codegen/ClassVisitorFactory.java new file mode 100644 index 00000000000..40ff59f7c38 --- /dev/null +++ b/idea/src/org/jetbrains/jet/codegen/ClassVisitorFactory.java @@ -0,0 +1,17 @@ +package org.jetbrains.jet.codegen; + +import org.jetbrains.jet.lang.psi.JetNamespace; +import org.objectweb.asm.ClassVisitor; +import org.objectweb.asm.util.TraceClassVisitor; + +import java.io.PrintWriter; +import java.io.StringWriter; + +/** + * @author max + */ +public class ClassVisitorFactory { + public ClassVisitor visitorForClassIn(JetNamespace namespace) { + return new TraceClassVisitor(new PrintWriter(new StringWriter())); + } +} diff --git a/idea/src/org/jetbrains/jet/codegen/ExpressionCodegen.java b/idea/src/org/jetbrains/jet/codegen/ExpressionCodegen.java new file mode 100644 index 00000000000..7a928630a67 --- /dev/null +++ b/idea/src/org/jetbrains/jet/codegen/ExpressionCodegen.java @@ -0,0 +1,256 @@ +package org.jetbrains.jet.codegen; + +import gnu.trove.TObjectIntHashMap; +import org.jetbrains.jet.lang.psi.*; +import org.objectweb.asm.Label; +import org.objectweb.asm.MethodVisitor; +import org.objectweb.asm.Type; +import org.objectweb.asm.commons.InstructionAdapter; + +import java.util.List; +import java.util.Stack; + +/** + * @author max + */ +public class ExpressionCodegen extends JetVisitor { + private final Stack