Changeset 375
- Timestamp:
- 07/04/08 08:02:59 (3 months ago)
- Files:
-
- trunk/redimple/dsss.conf (modified) (1 diff)
- trunk/redimple/redimple.d (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/redimple/dsss.conf
r373 r375 1 1 name=redimple 2 2 [redimple.d] 3 buildflags=-g trunk/redimple/redimple.d
r374 r375 110 110 } 111 111 112 bool java_mode; 113 112 114 string modToFile(string mod) { 113 115 auto res=mod.replace(".", "/"); 114 return res~".d"; 116 if (java_mode) return res~".java"; 117 else return res~".d"; 115 118 } 116 119 … … 119 122 void log(char[] l) { } 120 123 124 Graph!(string) genJavaImportsGraph(char[] mod, excluder xc) { 125 auto files = listdir(".", "*.java") /map/ (string s) { return s[s.rfind("/")+1 .. $].endsWith(".java"); } 126 /select/ (string s) { return xc("", s); }; 127 auto res = new Graph!(string); 128 foreach (string file; files) { 129 res.addNode(file); 130 } 131 foreach (string file; files) { 132 auto data = cast(string) (file~".java").read(); 133 foreach (string file2; files) { 134 if (file2 == file) continue; 135 if (data.find(file2) != -1) { 136 res.addEdge(file, file2); 137 } 138 } 139 } 140 return res; 141 } 142 121 143 Graph!(string) genImportsGraph(char[] mod, excluder xc, bool incExtNodes=false) { 144 if (java_mode) return genJavaImportsGraph(mod, xc); 122 145 auto res=new Graph!(string); 123 146 string[] scanned; … … 199 222 if (pos==-1) return false; 200 223 return (letters~digits~"_").find(s[pos-1])==-1; 201 } /map/ (string s) { return s[s.find("class ")+6..$]; } /uniq; 202 char[] res="shape=record, style="~quote("rounded, filled")~", label="~'"'~(leftright?"{":"")~"{ { "~mod.rmPkg()~" } "; 224 } /map/ (string s) { return s[s.find("class ")+6..$]; } /map/ &strip 225 /select/ (string s) { return s != mod; } /uniq; 226 char[] res; 227 if (classes.length) res="shape=record, style="~quote("rounded, filled")~", label="~'"'~(leftright?"{":"")~"{ { "~mod.rmPkg()~" } "; 228 else res="shape=record, style="~quote("rounded, filled")~", label=\""~mod.rmPkg(); 203 229 string[] splitSkipBrackets(string inp, char sep) { 204 230 size_t bracketlevel=0; … … 221 247 res~=" | { "~entry~(supers /map/ (string s) { return " | "~s; } /reduce(""[])/ ex!("e, f -> e~f"))~" } "; 222 248 } 223 return res~"}"~(leftright?"}":"")~'"'; 249 if (classes.length) return res~"}"~(leftright?"}":"")~'"'; 250 else return res ~ "\""; 224 251 } 225 252 … … 237 264 char[] startmod=args[0]; args = args[1 .. $]; 238 265 auto xc=new PExcluder; 239 foreach (arg; args) if (arg.length>2&&arg[0..2]=="-x") xc.add(arg[2..$]); 240 foreach (arg; args) if (arg.length==3&&arg=="-lr") leftright=true; 266 foreach (arg; args) { 267 if (auto rest = arg.startsWith("-x")) xc.add(rest); 268 if (arg == "-java") java_mode = true; 269 if (arg=="-lr") leftright=true; 270 } 241 271 writefln("Digraph G { graph [concentrate=true, remincross=true, labeljust=l, ratio=compress, nodesep=0.2, "~(leftright?"rankdir=LR, ":"")~"fontname=Helvetica];"); 242 272 writefln(" node [ fontname=Helvetica ]; ");
