X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Fmodule%2FConcreteModule.java;h=31ef0dc5a0cb9863874d042858aec59d451adadd;hb=c07a8f3914123e9b75a11290994a8b78bd3f01f7;hp=b92f3dff6417c04b5d23b9dfe0899e7315759ed6;hpb=4e753de3df98d5411f8329205c0e03f2e13e3c1d;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/module/ConcreteModule.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/module/ConcreteModule.java index b92f3dff6..31ef0dc5a 100644 --- a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/module/ConcreteModule.java +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/module/ConcreteModule.java @@ -12,6 +12,7 @@ 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.TypeDescriptor; @@ -22,8 +23,12 @@ 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.module.debug.ModuleDebugInfo; import org.simantics.scl.compiler.top.ModuleInitializer; import org.simantics.scl.compiler.types.TCon; +import org.simantics.scl.compiler.types.TVar; +import org.simantics.scl.compiler.types.Type; +import org.simantics.scl.compiler.types.Types; import org.simantics.scl.runtime.profiling.BranchPoint; import gnu.trove.map.hash.THashMap; @@ -54,6 +59,8 @@ public class ConcreteModule implements Module { ModuleInitializer moduleInitializer; protected Documentation documentation; + + public ModuleDebugInfo moduleDebugInfo; public ConcreteModule(String moduleName) { this.moduleName = moduleName; @@ -76,6 +83,10 @@ public class ConcreteModule implements Module { return effectConstructors.put(name, effectConstructor) != null; } + public void addTypeAlias(String name, TVar[] parameters, Type body) { + typeDescriptors.put(name, new TypeAlias(Types.con(moduleName, name), parameters, body)); + } + public boolean addTypeClass(String name, TypeClass typeClass) { return typeClasses.put(name, typeClass) != null; } @@ -249,7 +260,7 @@ public class ConcreteModule implements Module { this.values.forEachEntry(new TObjectObjectProcedure() { @Override public boolean execute(String name, SCLValue value) { - if(value.isPrivate()) + if(value.isPrivateOrDerived()) return true; String lowerPrefix = prefix.toLowerCase(); String lowerName = name.toLowerCase(); @@ -269,6 +280,11 @@ public class ConcreteModule implements Module { consumer.accept(value); }); } + + @Override + public List getValueNames() { + return new ArrayList(values.keySet()); + } public Collection getRelations() { return relations.values(); @@ -336,4 +352,9 @@ public class ConcreteModule implements Module { public void setDeprecation(String deprecation) { this.deprecation = deprecation; } + + @Override + public ModuleDebugInfo getModuleDebugInfo() { + return moduleDebugInfo; + } }