diff --git a/src/be/jeffcheasey88/peeratcode/parser/state/generator/ParserComposantGenerator.java b/src/be/jeffcheasey88/peeratcode/parser/state/generator/ParserComposantGenerator.java index 4915777..5a4a111 100644 --- a/src/be/jeffcheasey88/peeratcode/parser/state/generator/ParserComposantGenerator.java +++ b/src/be/jeffcheasey88/peeratcode/parser/state/generator/ParserComposantGenerator.java @@ -43,8 +43,17 @@ public class ParserComposantGenerator { public void generate() throws Exception{ SynthaxeComposant synthax = load(); Map> dependency = synthax.dependency(); - for(Entry> entry : dependency.entrySet()){ - System.out.println(entry.getKey()+" - "+entry.getValue()); + + while(!dependency.isEmpty()){ + for(Entry> composant : dependency.entrySet()){ + if(composant.getValue().isEmpty()){ + synthax.composants.get(composant.getKey()).build(); + + dependency.remove(composant.getKey()); + for(Entry> entry : dependency.entrySet()) entry.getValue().remove(composant.getKey()); + break; + } + } } } @@ -381,7 +390,11 @@ public class ParserComposantGenerator { private Map> dependency(){ Map> map = new HashMap<>(); - for(Entry entry : this.composants.entrySet()) map.put(entry.getKey(), entry.getValue().dependency()); + for(Entry entry : this.composants.entrySet()){ + Set set = entry.getValue().dependency(); + set.remove(entry.getKey()); + map.put(entry.getKey(), set); + } return map; } @@ -428,6 +441,11 @@ public class ParserComposantGenerator { return result; } + public void build(){ + System.out.println("build "+title); + + } + public void include(){ if(path == null){ path = current;