]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/module/Module.java
(refs #7250) CHR rules modularization (first working version)
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / module / Module.java
index beda6d53419f722f6e082008dd617e5461c1df25..ee90b5e1a3f7f263406debf52453ea531f394d25 100644 (file)
@@ -4,17 +4,19 @@ import java.util.Collection;
 import java.util.List;
 import java.util.function.Consumer;
 
+import org.simantics.scl.compiler.constants.Constant;
+import org.simantics.scl.compiler.elaboration.chr.CHRRuleset;
 import org.simantics.scl.compiler.elaboration.modules.Documentation;
 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.modules.TypeDescriptor;
 import org.simantics.scl.compiler.elaboration.relations.SCLEntityType;
 import org.simantics.scl.compiler.elaboration.relations.SCLRelation;
 import org.simantics.scl.compiler.elaboration.rules.MappingRelation;
 import org.simantics.scl.compiler.elaboration.rules.TransformationRule;
 import org.simantics.scl.compiler.environment.filter.NamespaceFilter;
+import org.simantics.scl.compiler.errors.CompilationError;
 import org.simantics.scl.compiler.internal.codegen.effects.EffectConstructor;
 import org.simantics.scl.compiler.top.ModuleInitializer;
 import org.simantics.scl.compiler.types.TCon;
@@ -25,17 +27,21 @@ import gnu.trove.procedure.TObjectProcedure;
 
 public interface Module {
     String getName();
+    String getDefaultLocalName();
     
     SCLValue getValue(String name);
+    List<Constant> getFieldAccessors(String name);
     SCLRelation getRelation(String name);
     SCLEntityType getEntityType(String name);
-    TypeConstructor getTypeConstructor(String name);
+    
+    TypeDescriptor getTypeDescriptor(String name);
+    
     EffectConstructor getEffectConstructor(String name);
     TypeClass getTypeClass(String name);
     Collection<TypeClassInstance> getInstances(TCon typeClass);
-    TypeAlias getTypeAlias(String name);
     MappingRelation getMappingRelation(String name);
     TransformationRule getRule(String name);
+    CHRRuleset getRuleset(String name);
     Collection<TransformationRule> getRules();
     
     void findValuesForPrefix(String prefix, NamespaceFilter filter, TObjectProcedure<SCLValue> proc);
@@ -51,5 +57,7 @@ public interface Module {
 
     THashMap<String, BranchPoint[]> getBranchPoints();
     void dispose();
-    
+
+    CompilationError[] getWarnings();
+    ClassLoader getParentClassLoader();
 }