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