-package org.simantics.scl.compiler.compilation;\r
-\r
-import org.simantics.scl.compiler.common.names.Name;\r
-import org.simantics.scl.compiler.elaboration.contexts.EnvironmentalContext;\r
-import org.simantics.scl.compiler.elaboration.expressions.EConstant;\r
-import org.simantics.scl.compiler.elaboration.expressions.EError;\r
-import org.simantics.scl.compiler.elaboration.expressions.Expression;\r
-import org.simantics.scl.compiler.elaboration.modules.SCLValue;\r
-import org.simantics.scl.compiler.environment.Environment;\r
-import org.simantics.scl.compiler.errors.ErrorLog;\r
-import org.simantics.scl.compiler.errors.Locations;\r
-import org.simantics.scl.compiler.internal.codegen.types.JavaTypeTranslator;\r
-import org.simantics.scl.compiler.internal.codegen.utils.JavaNamingPolicy;\r
-import org.simantics.scl.compiler.module.ConcreteModule;\r
-import org.simantics.scl.compiler.types.Type;\r
-\r
-import gnu.trove.map.hash.THashMap;\r
-\r
-public class CompilationContext implements EnvironmentalContext {\r
- public final ErrorLog errorLog = new ErrorLog();\r
- public Environment environment;\r
- public JavaTypeTranslator javaTypeTranslator;\r
- public JavaNamingPolicy namingPolicy;\r
- public ConcreteModule module;\r
- \r
- private THashMap<Name, SCLValue> valueCache = new THashMap<Name, SCLValue>();\r
-\r
- public SCLValue getValue(Name name) {\r
- if(valueCache.containsKey(name))\r
- return valueCache.get(name);\r
- SCLValue value = environment.getValue(name);\r
- if(value == null)\r
- errorLog.log(Locations.NO_LOCATION, "Couldn't find " + name + ".");\r
- valueCache.put(name, value);\r
- return value;\r
- }\r
- \r
- public Expression getConstant(Name name, Type ... typeParameters) {\r
- SCLValue value = getValue(name);\r
- if(value == null)\r
- return new EError(Locations.NO_LOCATION);\r
- return new EConstant(value, typeParameters);\r
- }\r
-}\r
+package org.simantics.scl.compiler.compilation;
+
+import org.simantics.scl.compiler.common.names.Name;
+import org.simantics.scl.compiler.elaboration.contexts.EnvironmentalContext;
+import org.simantics.scl.compiler.elaboration.expressions.EConstant;
+import org.simantics.scl.compiler.elaboration.expressions.EError;
+import org.simantics.scl.compiler.elaboration.expressions.Expression;
+import org.simantics.scl.compiler.elaboration.modules.SCLValue;
+import org.simantics.scl.compiler.environment.Environment;
+import org.simantics.scl.compiler.errors.ErrorLog;
+import org.simantics.scl.compiler.errors.Locations;
+import org.simantics.scl.compiler.internal.codegen.types.JavaTypeTranslator;
+import org.simantics.scl.compiler.internal.codegen.utils.JavaNamingPolicy;
+import org.simantics.scl.compiler.internal.header.ModuleHeader;
+import org.simantics.scl.compiler.module.ConcreteModule;
+import org.simantics.scl.compiler.types.Type;
+
+import gnu.trove.map.hash.THashMap;
+
+public class CompilationContext implements EnvironmentalContext {
+ public final ErrorLog errorLog = new ErrorLog();
+ public Environment environment;
+ public JavaTypeTranslator javaTypeTranslator;
+ public JavaNamingPolicy namingPolicy;
+ public ConcreteModule module;
+ public ModuleHeader header;
+
+ private THashMap<Name, SCLValue> valueCache = new THashMap<Name, SCLValue>();
+
+ public SCLValue getValue(Name name) {
+ if(valueCache.containsKey(name))
+ return valueCache.get(name);
+ SCLValue value = environment.getValue(name);
+ if(value == null)
+ errorLog.log(Locations.NO_LOCATION, "Couldn't find " + name + ".");
+ valueCache.put(name, value);
+ return value;
+ }
+
+ public Expression getConstant(Name name, Type ... typeParameters) {
+ SCLValue value = getValue(name);
+ if(value == null)
+ return new EError(Locations.NO_LOCATION);
+ return new EConstant(value, typeParameters);
+ }
+}