]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/environment/Environment.java
(refs #6924) Support for record field access syntax.
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / environment / Environment.java
1 package org.simantics.scl.compiler.environment;
2
3 import java.util.Collection;
4 import java.util.List;
5
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;
18
19 public interface Environment extends EnvironmentalContext {
20     Namespace getLocalNamespace();
21     
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);
31 }