]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/environment/Environment.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / environment / Environment.java
diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/environment/Environment.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/environment/Environment.java
new file mode 100644 (file)
index 0000000..70c6206
--- /dev/null
@@ -0,0 +1,30 @@
+package org.simantics.scl.compiler.environment;
+
+import java.util.Collection;
+
+import org.simantics.scl.compiler.common.names.Name;
+import org.simantics.scl.compiler.elaboration.contexts.EnvironmentalContext;
+import org.simantics.scl.compiler.elaboration.modules.SCLValue;
+import org.simantics.scl.compiler.elaboration.modules.TypeAlias;
+import org.simantics.scl.compiler.elaboration.modules.TypeClass;
+import org.simantics.scl.compiler.elaboration.modules.TypeClassInstance;
+import org.simantics.scl.compiler.elaboration.modules.TypeConstructor;
+import org.simantics.scl.compiler.elaboration.relations.SCLEntityType;
+import org.simantics.scl.compiler.elaboration.relations.SCLRelation;
+import org.simantics.scl.compiler.elaboration.rules.TransformationRule;
+import org.simantics.scl.compiler.internal.codegen.effects.EffectConstructor;
+import org.simantics.scl.compiler.types.TCon;
+
+public interface Environment extends EnvironmentalContext {
+    Namespace getLocalNamespace();
+    
+    SCLValue getValue(Name name);
+    SCLRelation getRelation(Name name);
+    SCLEntityType getEntityType(Name name);
+    TypeConstructor getTypeConstructor(TCon type);
+    EffectConstructor getEffectConstructor(TCon type);
+    TypeAlias getTypeAlias(TCon type);
+    TypeClass getTypeClass(TCon type);
+    Collection<TypeClassInstance> getInstances(TCon typeClass);
+    void collectRules(Collection<TransformationRule> rules);
+}