annotate collectionimp.d @ 192:c3583c6ec027

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