1 package org.simantics.scl.compiler.environment;
3 import java.util.Collection;
5 import org.simantics.scl.compiler.common.names.Name;
6 import org.simantics.scl.compiler.elaboration.contexts.EnvironmentalContext;
7 import org.simantics.scl.compiler.elaboration.modules.SCLValue;
8 import org.simantics.scl.compiler.elaboration.modules.TypeAlias;
9 import org.simantics.scl.compiler.elaboration.modules.TypeClass;
10 import org.simantics.scl.compiler.elaboration.modules.TypeClassInstance;
11 import org.simantics.scl.compiler.elaboration.modules.TypeConstructor;
12 import org.simantics.scl.compiler.elaboration.relations.SCLEntityType;
13 import org.simantics.scl.compiler.elaboration.relations.SCLRelation;
14 import org.simantics.scl.compiler.elaboration.rules.TransformationRule;
15 import org.simantics.scl.compiler.internal.codegen.effects.EffectConstructor;
16 import org.simantics.scl.compiler.types.TCon;
18 public interface Environment extends EnvironmentalContext {
19 Namespace getLocalNamespace();
21 SCLValue getValue(Name name);
22 SCLRelation getRelation(Name name);
23 SCLEntityType getEntityType(Name name);
24 TypeConstructor getTypeConstructor(TCon type);
25 EffectConstructor getEffectConstructor(TCon type);
26 TypeAlias getTypeAlias(TCon type);
27 TypeClass getTypeClass(TCon type);
28 Collection<TypeClassInstance> getInstances(TCon typeClass);
29 void collectRules(Collection<TransformationRule> rules);