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;
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,
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;
}
}