import org.simantics.scl.compiler.constants.Constant;
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;
public class ConcreteModule implements Module {
String moduleName;
- THashMap<String, TypeConstructor> typeConstructors = new THashMap<String, TypeConstructor>();
- THashMap<String, TypeAlias> typeAliases = new THashMap<String, TypeAlias>();
+ THashMap<String, TypeDescriptor> typeDescriptors = new THashMap<String, TypeDescriptor>();
THashMap<String, EffectConstructor> effectConstructors = new THashMap<String, EffectConstructor>();
THashMap<String, TypeClass> typeClasses = new THashMap<String, TypeClass>();
THashMap<TCon, ArrayList<TypeClassInstance>> typeClassInstances = new THashMap<TCon, ArrayList<TypeClassInstance>>();
THashMap<String, MappingRelation> mappingRelations = new THashMap<String, MappingRelation>();
ArrayList<ImportDeclaration> dependencies = new ArrayList<ImportDeclaration>();
THashMap<String, BranchPoint[]> branchPoints;
-
+ CompilationError[] warnings = CompilationError.EMPTY_ARRAY;
+
Map<String, byte[]> classes = Collections.emptyMap();
ModuleInitializer moduleInitializer;
this.moduleName = moduleName;
}
- public boolean addTypeConstructor(String name, TypeConstructor typeConstructor) {
- return typeConstructors.put(name, typeConstructor) != null;
- }
-
- public boolean addTypeAlias(String name, TypeAlias alias) {
- return typeAliases.put(name, alias) != null;
+ public boolean addTypeDescriptor(String name, TypeDescriptor typeConstructor) {
+ return typeDescriptors.put(name, typeConstructor) != null;
}
public boolean addEffectConstructor(String name, EffectConstructor effectConstructor) {
}
@Override
- public TypeConstructor getTypeConstructor(String name) {
- return typeConstructors.get(name);
+ public TypeDescriptor getTypeDescriptor(String name) {
+ return typeDescriptors.get(name);
}
@Override
return documentation;
}
- @Override
- public TypeAlias getTypeAlias(String name) {
- return typeAliases.get(name);
- }
-
public void setClasses(Map<String, byte[]> classes) {
this.classes = classes;
}
@Override
public void findTypesForPrefix(String prefix, NamespaceFilter filter, Consumer<TCon> consumer) {
- typeConstructors.values().forEach(type -> {
+ typeDescriptors.values().forEach(type -> {
TCon tcon = type.name;
if (tcon.name.toLowerCase().startsWith(prefix.toLowerCase()) && filter.isValueIncluded(tcon.name))
consumer.accept(tcon);
});
- typeAliases.values().forEach(type -> {
- TCon tcon = type.getCon();
- if (tcon.name.toLowerCase().startsWith(prefix.toLowerCase()) && filter.isValueIncluded(tcon.name))
- consumer.accept(tcon);
- });
}
public void setBranchPoints(THashMap<String, BranchPoint[]> branchPoints) {
@Override
public void dispose() {
-
+ }
+
+ public void setWarnings(CompilationError[] warnings) {
+ this.warnings = warnings;
+ }
+
+ public CompilationError[] getWarnings() {
+ return warnings;
}
}