Commit | Line | Data |
---|---|---|
79072805 LW |
1 | #!/usr/bin/perl |
2 | ||
3 | print STDERR "Loading proper nouns...\n"; | |
4 | open(DICT,"/usr/dict/words") || die "Can't find /usr/dict/words: $!\n"; | |
5 | while (<DICT>) { | |
6 | if (/^[A-Z]/) { | |
7 | chop; | |
8 | ($lower = $_) =~ y/A-Z/a-z/; | |
9 | $proper{$lower} = $_; | |
10 | } | |
11 | } | |
12 | close DICT; | |
13 | print STDERR "Loading exceptions...\n"; | |
14 | ||
15 | $prog = <<'EOT'; | |
16 | while (<>) { | |
17 | next if /[a-z]/; | |
18 | y/A-Z/a-z/; | |
19 | s/(\w+)/$proper{$1} ? $proper{$1} : $1/eg; | |
20 | s/^(\s*)([a-z])/$1 . (($tmp = $2) =~ y:a-z:A-Z:,$tmp)/e; | |
21 | s/([-.?!]["']?(\n\s*| \s*)["']?)([a-z])/$1 . (($tmp = $3) =~ y:a-z:A-Z:,$tmp)/eg; | |
22 | s/\b([b-df-hj-np-tv-xz]+)\b/(($tmp = $1) =~ y:a-z:A-Z:,$tmp)/eg; | |
23 | s/([a-z])'([SDT])\b/$1 . "'" . (($tmp = $2) =~ y:A-Z:a-z:,$tmp)/eg; | |
24 | EOT | |
25 | while (<DATA>) { | |
26 | chop; | |
27 | next if /^$/; | |
28 | next if /^#/; | |
29 | if (! /;$/) { | |
30 | $foo = $_; | |
31 | $foo =~ y/A-Z/a-z/; | |
32 | print STDERR "Dup $_\n" if $proper{$foo}; | |
33 | $foo =~ s/([^\w ])/\\$1/g; | |
34 | $foo =~ s/ /(\\s+)/g; | |
35 | $foo = "\\b" . $foo if $foo =~ /^\w/; # XXX till patch 9 | |
36 | $foo .= "\\b" if $foo =~ /\w$/; | |
37 | $i = 0; | |
38 | ($bar = $_) =~ s/ /'$' . ++$i/eg; | |
39 | $_ = "s/$foo/$bar/gi;"; | |
40 | } | |
41 | $prog .= ' ' . $_ . "\n"; | |
42 | } | |
43 | $prog .= "}\ncontinue {\n print;\n}\n"; | |
44 | ||
45 | $/ = ''; | |
46 | #print $prog; | |
47 | eval $prog; die $@ if $@; | |
48 | __END__ | |
49 | A.M. | |
50 | Air Force | |
51 | Air Force Base | |
52 | Air Force Station | |
53 | American | |
54 | Apr. | |
55 | Ariane | |
56 | Aug. | |
57 | August | |
58 | Bureau of Labor Statistics | |
59 | CIT | |
60 | Caltech | |
61 | Cape Canaveral | |
62 | Challenger | |
63 | China | |
64 | Corporation | |
65 | Crippen | |
66 | Daily News in Brief | |
67 | Daniel Quayle | |
68 | Dec. | |
69 | Discovery | |
70 | Edwards | |
71 | Endeavour | |
72 | Feb. | |
73 | Ford Aerospace | |
74 | Fri. | |
75 | General Dynamics | |
76 | George Bush | |
77 | Headline News | |
78 | HOTOL | |
79 | I | |
80 | II | |
81 | III | |
82 | IV | |
83 | IX | |
84 | Institute of Technology | |
85 | JPL | |
86 | Jan. | |
87 | Jul. | |
88 | Jun. | |
89 | Kennedy Space Center | |
90 | LDEF | |
91 | Long Duration Exposure Facility | |
92 | Long March | |
93 | Mar. | |
94 | March | |
95 | Martin | |
96 | Martin Marietta | |
97 | Mercury | |
98 | Mon. | |
99 | in May | |
100 | s/\bmay (\d)/May $1/g; | |
101 | s/\boffice of (\w)/'Office of ' . (($tmp = $1) =~ y:a-z:A-Z:,$tmp)/eg; | |
102 | National Science Foundation | |
103 | NASA Select | |
104 | New Mexico | |
105 | Nov. | |
106 | OMB | |
107 | Oct. | |
108 | Office of Management and Budget | |
109 | President | |
110 | President Bush | |
111 | Richard Truly | |
112 | Rocketdyne | |
113 | Russian | |
114 | Russians | |
115 | Sat. | |
116 | Sep. | |
117 | Soviet | |
118 | Soviet Union | |
119 | Soviets | |
120 | Space Shuttle | |
121 | Sun. | |
122 | Thu. | |
123 | Tue. | |
124 | U.S. | |
125 | Union of Soviet Socialist Republics | |
126 | United States | |
127 | VI | |
128 | VII | |
129 | VIII | |
130 | Vice President | |
131 | Vice President Quayle | |
132 | Wed. | |
133 | White Sands | |
134 | Kaman Aerospace | |
135 | Aerospace Daily | |
136 | Aviation Week | |
137 | Space Technology | |
138 | Washington Post | |
139 | Los Angeles Times | |
140 | New York Times | |
141 | Aerospace Industries Association | |
142 | president of | |
143 | Johnson Space Center | |
144 | Space Services | |
145 | Inc. | |
146 | Co. | |
147 | Hughes Aircraft | |
148 | Company | |
149 | Orbital Sciences | |
150 | Swedish Space | |
151 | Arnauld | |
152 | Nicogosian | |
153 | Magellan | |
154 | Galileo | |
155 | Mir | |
156 | Jet Propulsion Laboratory | |
157 | University | |
158 | Department of Defense | |
159 | Orbital Science | |
160 | OMS | |
161 | United Press International | |
162 | United Press | |
163 | UPI | |
164 | Associated Press | |
165 | AP | |
166 | Cable News Network | |
167 | Cape York | |
168 | Zenit | |
169 | SYNCOM | |
170 | Eastern | |
171 | Western | |
172 | Test Range | |
173 | Jcsat | |
174 | Japanese Satellite Communications | |
175 | Defence Ministry | |
176 | Defense Ministry | |
177 | Skynet | |
178 | Fixed Service Structure | |
179 | Launch Processing System | |
180 | Asiasat | |
181 | Launch Control Center | |
182 | Earth | |
183 | CNES | |
184 | Glavkosmos | |
185 | Pacific | |
186 | Atlantic |