rewrite K2JSTranslator class

This commit is contained in:
Pavel Talanov
2011-12-12 13:00:39 +04:00
parent 024138e759
commit b0fbdb05e2
5 changed files with 13 additions and 32 deletions
+1 -1
View File
@@ -24,7 +24,7 @@
<component name="ProjectResources">
<default-html-doctype>http://www.w3.org/1999/xhtml</default-html-doctype>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_6" assert-keyword="true" jdk-15="true" project-jdk-name="IDEA IC-110.283" project-jdk-type="IDEA JDK">
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_6" assert-keyword="true" jdk-15="true" project-jdk-name="IDEA IC-112.121" project-jdk-type="IDEA JDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
<component name="com.sixrr.metrics.MetricsReloaded">
+1 -1
View File
@@ -7,7 +7,7 @@
</content>
<orderEntry type="jdk" jdkName="1.7" jdkType="JavaSDK" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="libs" level="project" />
<orderEntry type="library" name="lib" level="project" />
</component>
</module>
@@ -1,11 +1,10 @@
package org.jetbrains.k2js;
import com.google.dart.compiler.backend.js.ast.JsProgram;
import com.intellij.openapi.Disposable;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.openapi.vfs.CharsetToolkit;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiElementVisitor;
import com.intellij.psi.PsiFile;
import com.intellij.psi.PsiFileFactory;
import com.intellij.psi.impl.PsiFileFactoryImpl;
@@ -15,12 +14,12 @@ import org.jetbrains.jet.JetCoreEnvironment;
import org.jetbrains.jet.compiler.CompileEnvironment;
import org.jetbrains.jet.compiler.CompileEnvironmentException;
import org.jetbrains.jet.lang.cfg.pseudocode.JetControlFlowDataTraceFactory;
import org.jetbrains.jet.lang.descriptors.NamespaceDescriptor;
import org.jetbrains.jet.lang.psi.JetFile;
import org.jetbrains.jet.lang.psi.JetNamespace;
import org.jetbrains.jet.lang.resolve.BindingContext;
import org.jetbrains.jet.plugin.JetLanguage;
import org.jetbrains.k2js.translate.utils.BindingUtils;
import org.jetbrains.k2js.generate.CodeGenerator;
import org.jetbrains.k2js.translate.general.Translation;
import org.jetbrains.k2js.utils.JetTestUtils;
import java.io.File;
@@ -35,14 +34,13 @@ public final class K2JSTranslator {
@Override
public void dispose() {
//To change body of implemented methods use File | Settings | File Templates.
}
});
public K2JSTranslator() {
}
public void translate(String inputFile, String outputFile) {
public void translate(String inputFile, String outputFile) throws Exception {
try {
@@ -54,8 +52,10 @@ public final class K2JSTranslator {
BindingContext bindingContext = JetTestUtils.analyzeNamespace(namespace,
JetControlFlowDataTraceFactory.EMPTY);
NamespaceDescriptor namespaceDescriptor = BindingUtils.getNamespaceDescriptor(bindingContext, namespace);
namespaceDescriptor.getMemberScope().getAllDescriptors();
JsProgram program = Translation.generateAst(bindingContext, namespace, myEnvironment.getProject());
CodeGenerator generator = new CodeGenerator();
generator.generateToFile(program, new File(outputFile));
} catch (CompileEnvironmentException e) {
System.out.println(e.getMessage());
@@ -90,22 +90,4 @@ public final class K2JSTranslator {
return ((PsiFileFactoryImpl) PsiFileFactory.getInstance(myEnvironment.getProject())).trySetupPsiForFile(virtualFile, JetLanguage.INSTANCE, true, false);
}
protected void ensureParsed(PsiFile file) {
file.accept(new PsiElementVisitor() {
@Override
public void visitElement(PsiElement element) {
element.acceptChildren(this);
}
});
}
protected void prepareForTest(String name) throws IOException {
// String text = loadFile(name + ".jet");
// createAndCheckPsiFile(name, text);
}
protected void createAndCheckPsiFile(String name, String text) {
//createCheckAndReturnPsiFile(name, text);
}
}
@@ -1,6 +1,5 @@
package org.jetbrains.k2js.test;
import org.jetbrains.k2js.K2JSTranslator;
import org.mozilla.javascript.Context;
import org.mozilla.javascript.Scriptable;
@@ -56,7 +55,7 @@ public abstract class TranslationTest {
new RhinoFunctionResultChecker(namespaceName, functionName, expectedResult));
}
protected void translateFile(String filename) {
protected void translateFile(String filename) throws Exception {
(new K2JSTranslator()).translate(getInputFilePath(filename), getOutputFilePath(filename));
}
+2 -2
View File
@@ -7,13 +7,13 @@
<sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/examples" isTestSource="true" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="jdk" jdkName="IDEA IC-112.121" jdkType="IDEA JDK" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="js" />
<orderEntry type="module" module-name="frontend" />
<orderEntry type="module" module-name="frontend.java" />
<orderEntry type="library" name="libs" level="project" />
<orderEntry type="module" module-name="backend" />
<orderEntry type="library" name="lib" level="project" />
</component>
</module>