]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/writer/ModuleWriter.java
SCL compiler generates line numbers to bytecode
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / internal / codegen / writer / ModuleWriter.java
index a0484176556009b895484aae50c526598d3a625d..e663c814e2f60b006fd06493ea11782795d98530 100644 (file)
@@ -9,6 +9,8 @@ import org.simantics.scl.compiler.constants.SCLConstant;
 import org.simantics.scl.compiler.internal.codegen.ssa.SSABlock;
 import org.simantics.scl.compiler.internal.codegen.ssa.SSAFunction;
 import org.simantics.scl.compiler.internal.codegen.ssa.SSAModule;
+import org.simantics.scl.compiler.internal.codegen.ssa.StaticField;
+import org.simantics.scl.compiler.internal.parsing.utils.LineLocator;
 import org.simantics.scl.compiler.types.TVar;
 import org.simantics.scl.compiler.types.Type;
 import org.simantics.scl.runtime.tuple.Tuple2;
@@ -18,15 +20,17 @@ import gnu.trove.map.hash.THashMap;
 public class ModuleWriter {
     
     SSAModule module;
+    LineLocator lineLocator;
     
     String moduleClassName;
     THashMap<Tuple2, JavaStaticField> externalConstantMap = 
                new THashMap<Tuple2, JavaStaticField>();
     int externalConstantId = 0;
     
-    public ModuleWriter(String moduleClassName) {
+    public ModuleWriter(String moduleClassName, LineLocator lineLocator) {
         this.module = new SSAModule();
         this.moduleClassName = moduleClassName;
+        this.lineLocator = lineLocator;
     }
 
     public CodeWriter createFunction(SCLConstant constant, TVar[] typeParameters,
@@ -59,7 +63,7 @@ public class ModuleWriter {
                        String name = "externalConstant" + externalConstantId;
                        JavaStaticField constant = new JavaStaticField(moduleClassName, name, type, -1);
                        externalConstantMap.put(tuple, constant);
-                       module.addStaticField(new Tuple2(name, type));
+                       module.addStaticField(new StaticField(name, type));
                        return constant;
                }
        }