X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Fmodule%2FModule.java;h=0ea33cb463f2de07a56c5ece742187cfa43b7c1c;hb=718558937433af8710e2e32402e3557eb67e3f43;hp=e8a1113367be7a9acde195e7e0b9e33629da9f57;hpb=ca40974f87c9db00eb77aaf1acc1e9937b37261b;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/module/Module.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/module/Module.java index e8a111336..0ea33cb46 100644 --- a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/module/Module.java +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/module/Module.java @@ -1,9 +1,12 @@ package org.simantics.scl.compiler.module; +import java.util.ArrayList; 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.TypeClass; @@ -13,8 +16,11 @@ 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.AcceptAllNamespaceFilter; 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.runtime.profiling.BranchPoint; @@ -24,8 +30,17 @@ import gnu.trove.procedure.TObjectProcedure; public interface Module { String getName(); + String getDefaultLocalName(); SCLValue getValue(String name); + default List getValueNames() { + ArrayList valueNames = new ArrayList(); + findValuesForPrefix("", AcceptAllNamespaceFilter.INSTANCE, value -> { + valueNames.add(value.getName().name); + }); + return valueNames; + } + List getFieldAccessors(String name); SCLRelation getRelation(String name); SCLEntityType getEntityType(String name); @@ -36,6 +51,7 @@ public interface Module { Collection getInstances(TCon typeClass); MappingRelation getMappingRelation(String name); TransformationRule getRule(String name); + CHRRuleset getRuleset(String name); Collection getRules(); void findValuesForPrefix(String prefix, NamespaceFilter filter, TObjectProcedure proc); @@ -51,5 +67,15 @@ public interface Module { THashMap getBranchPoints(); void dispose(); + + CompilationError[] getWarnings(); + ClassLoader getParentClassLoader(); + String getDeprecation(); + /** + * May return null, if there is no debug info. + */ + default ModuleDebugInfo getModuleDebugInfo() { + return null; + } }