@@ -177,34 +177,40 @@ fn doc_header(rd: rustdoc, name: str) {
177
177
rd. w . write_line ( "# Crate " + name) ;
178
178
}
179
179
180
+ mod parse {
181
+ fn from_file ( file : str ) -> @ast:: crate {
182
+ let cm = codemap:: new_codemap ( ) ;
183
+ let sess = @{
184
+ cm: cm,
185
+ mutable next_id: 0 ,
186
+ diagnostic: diagnostic:: mk_handler ( cm, none)
187
+ } ;
188
+ parser:: parse_crate_from_source_file ( file, [ ] , sess)
189
+ }
190
+ }
191
+
180
192
#[ doc(
181
193
brief = "Main function." ,
182
194
desc = "Command-line arguments:
183
195
184
196
* argv[1]: crate file name" ,
185
197
args( argv = "Command-line arguments." )
186
198
) ]
187
-
188
199
fn main ( argv : [ str ] ) {
189
200
190
- let w = io:: stdout ( ) ;
191
-
192
201
if vec:: len ( argv) != 2 u {
193
- w . write_str ( #fmt ( "usage: %s <input>\n " , argv[ 0 ] ) ) ;
202
+ io :: println ( #fmt ( "usage: %s <input>" , argv[ 0 ] ) ) ;
194
203
ret;
195
204
}
196
205
197
- let cm = codemap:: new_codemap ( ) ;
198
- let sess = @{
199
- cm: cm,
200
- mutable next_id: 0 ,
201
- diagnostic: diagnostic:: mk_handler ( cm, none)
202
- } ;
206
+ let crate = parse:: from_file ( argv[ 1 ] ) ;
207
+
208
+ let w = io:: stdout ( ) ;
203
209
let rd = { ps: pprust:: rust_printer ( w) , w: w } ;
204
210
doc_header ( rd, argv[ 1 ] ) ;
205
- let p = parser :: parse_crate_from_source_file ( argv [ 1 ] , [ ] , sess ) ;
211
+
206
212
let v = visit:: mk_simple_visitor ( @{
207
213
visit_item : bind doc_item( rd, _)
208
214
with * visit:: default_simple_visitor ( ) } ) ;
209
- visit:: visit_crate ( * p , ( ) , v) ;
215
+ visit:: visit_crate ( * crate , ( ) , v) ;
210
216
}
0 commit comments