diff trunk/src/docgen/docgen.d @ 729:ec8dd7b8bf0c

Updated graph type.
author Jari-Matti M?kel? <jmjm@iki.fi>
date Sun, 03 Feb 2008 19:43:53 +0200
parents e48a011e687a
children 30e6f1b302a1
line wrap: on
line diff
--- a/trunk/src/docgen/docgen.d	Sat Feb 02 23:17:14 2008 +0100
+++ b/trunk/src/docgen/docgen.d	Sun Feb 03 19:43:53 2008 +0200
@@ -36,15 +36,19 @@
   options.parser.importPaths = args[2..$-1];
   options.outputDir = args[$-1];
 
+  alias DepGraph.Vertex Vertex;
+  alias DepGraph.Edge Edge;
+
   Module[] cachedModules;
-  Edge[] cachedEdges;
-  Vertex[char[]] cachedVertices;
+  DepGraph cachedGraph;
 
-  void parser(ref Module[] modules, ref Edge[] edges, ref Vertex[char[]] vertices) {
-    if (cachedModules != null) {
+  void parser(ref Module[] modules, ref DepGraph depGraph) {
+    Edge[] edges;
+    Vertex[char[]] vertices;
+
+    if (cachedGraph != null) {
       modules = cachedModules;
-      edges = cachedEdges;
-      vertices = cachedVertices;
+      depGraph = cachedGraph;
       return;
     }
 
@@ -61,13 +65,10 @@
           if (fqn in vertices) {
             debug Stdout.format("{} already set.\n", fqn);
             return;
-
           }
           auto vertex = new Vertex(fqn, path, id++);
-          vertex.type = VertexType.UnlocatableModule;
           vertices[fqn] = vertex;
           debug Stdout.format("Setting {} = {}.\n", fqn, path);
-
         } else {
           vertices[m.moduleFQN] = new Vertex(m.moduleFQN, m.filePath, id++);
           debug Stdout.format("Setting {} = {}.\n", m.moduleFQN, m.filePath);
@@ -76,8 +77,7 @@
       (Module imported, Module importer, bool isPublic) {
         debug Stdout.format("Connecting {} - {}.\n", imported.moduleFQN, importer.moduleFQN);
         auto edge = vertices[imported.moduleFQN].addChild(vertices[importer.moduleFQN]);
-        edge.type = isPublic ? EdgeType.PublicDependency : EdgeType.Dependency;
-        edge.type = id % 2 ? EdgeType.PublicDependency : EdgeType.Dependency; // FIXME: temporary feature for demonstrating public imports
+        edge.isPublic = isPublic;
         edges ~= edge;
       },
       modules
@@ -87,9 +87,11 @@
       (Module a, Module b){ return icompare(a.moduleFQN, b.moduleFQN); }
     );
 
-    cachedVertices = vertices;
+    depGraph.edges = edges;
+    depGraph.vertices = vertices.values;
+
+    cachedGraph = depGraph;
     cachedModules = modules;
-    cachedEdges = edges;
   }
   
   GraphCache graphcache = new DefaultGraphCache();