]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/compilation/CompilationContext.java
(refs #7595) Started SCL/Reflection module
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / compilation / CompilationContext.java
index d5cbe614a8bb64b12088cb4ac0a9b8daa85e548e..b9625af78c5817621bb8f68245e6179f5336ea02 100644 (file)
@@ -1,44 +1,48 @@
-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.module.repository.ModuleRepository;
+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 ModuleRepository moduleRepository;
+    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);
+    }
+}