Mercurial > projects > dil
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();