public void visit(Module mod) { this.moduleName = mod.getName(); mod.getItems().forEach(mi -> { if (mi instanceof Syntax) visit((Syntax)mi); }); }
private static void checkCircularModuleImports(Module mainModule, scala.collection.Seq<Module> visitedModules) { if (visitedModules.contains(mainModule)) { String msg = "Found circularity in module imports: "; for (Module m : mutable(visitedModules)) { // JavaConversions.seqAsJavaList(visitedModules) msg += m.getName() + " < "; } msg += visitedModules.head().getName(); throw KEMException.compilerError(msg); } }
public org.kframework.definition.Definition apply(Definition d) { // Set<org.kframework.definition.Require> requires = d.getItems().stream() // .filter(i -> i instanceof Require).map(i -> apply((Require) i)) // .collect(Collectors.toSet()); Set<Module> kilModules = d.getItems().stream().filter(i -> i instanceof Module) .map(mod -> (Module) mod).collect(Collectors.toSet()); Module mainModule = kilModules.stream() .filter(mod -> mod.getName().equals(d.getMainModule())).findFirst().get(); HashMap<String, org.kframework.definition.Module> koreModules = new HashMap<>(); apply(mainModule, kilModules, koreModules); // Set<org.kframework.definition.Module> modules = kilModules.map(i -> // apply((Module) i)) // .collect(Collectors.toSet()); // TODO: handle LiterateDefinitionComments return Definition( koreModules.get(mainModule.getName()), immutable(new HashSet<>(koreModules.values())), Att()); }
.filter(m -> m.getName().equals(name)) .findFirst(); if (theModule.isPresent()) { Module mod = theModule.get(); org.kframework.definition.Module result = koreModules.get(mod.getName()); if (result == null) { result = apply(mod, allKilModules, koreModules, cons(mainModule, visitedModules)); .map(resolveImport).collect(Collectors.toSet()); Set<org.kframework.definition.Sentence> syntaxItems = items.stream().filter(org.kframework.definition.Sentence::isSyntax).collect(Collectors.toSet()); org.kframework.definition.Module newSyntaxModule = Module(new Import(mainModule.getName()).getImportSyntax().getName(), immutable(importedSyntaxModules), immutable(syntaxItems), convertAttributes(mainModule)); org.kframework.definition.Module newModule = Module(mainModule.getName(), immutable(importedModules), immutable(nonSyntaxItems), convertAttributes(mainModule));