package org.simantics.scl.compiler.compilation; import java.util.ArrayList; import org.simantics.scl.compiler.elaboration.modules.SCLValue; import org.simantics.scl.compiler.elaboration.modules.TypeClass; import org.simantics.scl.compiler.elaboration.modules.TypeClassInstance; import org.simantics.scl.compiler.elaboration.modules.TypeDescriptor; import org.simantics.scl.compiler.internal.parsing.declarations.DDocumentationAst; import org.simantics.scl.compiler.module.ConcreteModule; import org.simantics.scl.compiler.types.TCon; import gnu.trove.map.hash.THashMap; import gnu.trove.set.hash.THashSet; public class DocumentationGeneration { THashMap valueDocumentation; THashMap typeDocumentation; THashMap classDocumentation; ConcreteModule module; THashSet mentionedInDocumentation = new THashSet(); THashMap> dataToInstance = new THashMap>(); public DocumentationGeneration(/*StringBuilder moduleDocumentation,*/ THashMap valueDocumentation, THashMap typeDocumentation, THashMap classDocumentation, ConcreteModule module) { this.valueDocumentation = valueDocumentation; this.typeDocumentation = typeDocumentation; this.classDocumentation = classDocumentation; this.module = module; } public void generateDocumentation() { for(String name : classDocumentation.keySet()) { TypeClass typeClass = module.getTypeClass(name); DDocumentationAst doc = classDocumentation.get(name); if(typeClass != null && doc != null) typeClass.setDocumentation(doc.documentation); } for(String name : valueDocumentation.keySet()) { SCLValue value = module.getValue(name); DDocumentationAst doc = valueDocumentation.get(name); if(value != null && doc != null) value.setDocumentation(doc.documentation); } for(String name : typeDocumentation.keySet()) { TypeDescriptor typeConstructor = module.getTypeDescriptor(name); DDocumentationAst doc = typeDocumentation.get(name); if(typeConstructor != null && doc != null) typeConstructor.setDocumentation(doc.documentation); } } }