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.TypeClass;
9 import org.simantics.scl.compiler.elaboration.modules.TypeClassInstance;
10 import org.simantics.scl.compiler.elaboration.modules.TypeDescriptor;
11 import org.simantics.scl.compiler.elaboration.relations.SCLEntityType;
12 import org.simantics.scl.compiler.elaboration.relations.SCLRelation;
13 import org.simantics.scl.compiler.elaboration.rules.TransformationRule;
14 import org.simantics.scl.compiler.internal.codegen.effects.EffectConstructor;
15 import org.simantics.scl.compiler.types.TCon;
17 public interface Environment extends EnvironmentalContext {
18 Namespace getLocalNamespace();
20 SCLValue getValue(Name name);
21 SCLRelation getRelation(Name name);
22 SCLEntityType getEntityType(Name name);
23 TypeDescriptor getTypeDescriptor(TCon type);
24 EffectConstructor getEffectConstructor(TCon type);
25 TypeClass getTypeClass(TCon type);
26 Collection<TypeClassInstance> getInstances(TCon typeClass);
27 void collectRules(Collection<TransformationRule> rules);