comparison collectionimp.d @ 166:71ec57b4c8f3

merge
author Frank Benoit <benoit@tionex.de>
date Mon, 08 Sep 2008 01:38:10 +0200
parents 25f1f92fa3df
children 0ea0c9f9008f
comparison
equal deleted inserted replaced
165:20cdc983a411 166:71ec57b4c8f3
1 module packageimport;
2
3 import tango.io.FilePath;
4 import tango.io.File;
5 import tango.io.Buffer;
6 import tango.io.stream.FileStream;
7 import tango.io.stream.TextFileStream;
8 import tango.util.log.Trace;
9 import tango.text.Regex;
10 import tango.text.Util;
11 import tango.text.stream.LineIterator;
12 import tango.text.convert.Format;
13
14 const char[][] javaimps = [
15 "import java.util.ArrayList;",
16 "import java.util.Arrays;",
17 "import java.util.Collection;",
18 "import java.util.Collections;",
19 "import java.util.HashMap;",
20 "import java.util.HashSet;",
21 "import java.util.IdentityHashMap;",
22 "import java.util.Iterator;",
23 "import java.util.LinkedHashMap;",
24 "import java.util.LinkedList;",
25 "import java.util.List;",
26 "import java.util.ListIterator;",
27 "import java.util.Map;",
28 "import java.util.Map.Entry;",
29 "import java.util.Set;",
30 "import java.util.Comparator;",
31 "import java.util.Stack;"
32 ];
33 void processDir( char[] dir ){
34 auto pack = dir.dup.replace( '/', '.' );
35 auto fp = FilePath(dir);
36 char[][] mods;
37 // read all module names
38 foreach( fileinfo; fp ){
39 if( fileinfo.folder ){
40 processDir( fileinfo.path ~ fileinfo.name );
41 continue;
42 }
43 if( fileinfo.name.length > 2 && fileinfo.name[ $-2 .. $ ] == ".d" ){
44 mods ~= fileinfo.name.dup;
45 }
46 }
47 // foreach module
48 foreach( mod; mods ){
49 auto filename = Format("{}/{}", dir, mod );
50 auto cont = cast(char[])File( filename ).read;
51 char[][] lines = cont.splitLines();
52 char[][] outlines = lines.dup;
53 bool found = true;
54 foreach( uint idx, char[] line; lines ){
55 foreach( javaimp; javaimps ){
56 if( line == javaimp ){
57 outlines[idx] = found ? "import dwtx.dwtxhelper.Collection;" : "";
58 found = false;
59 }
60 }
61 }
62 if( !found ){
63 Trace.formatln( "{} ", filename );
64 bool first = true;
65 auto output = new TextFileOutput( filename );
66 foreach( line; outlines ){
67 if( !first ){
68 output.write( \n );
69 }
70 first = false;
71 output.write( line );
72 }
73 output.flush();
74 output.close();
75 }
76 }
77 // read content into buffer
78 // search module statement and print to outfile
79 // write package imports
80 // write all remaining lines
81 }
82
83 void main(){
84 processDir( "dwtx/text" );
85 processDir( "dwtx/jface/text" );
86 processDir( "dwtx/jface/internal/text" );
87 }
88
89
90
91
92
93