@@ -59,10 +59,12 @@ impure fn compile_input(session.session sess,
59
59
str input, str output,
60
60
bool shared,
61
61
bool optimize,
62
+ bool parse_only,
62
63
vec[ str] library_search_paths) {
63
64
auto def = tup ( 0 , 0 ) ;
64
65
auto p = parser. new_parser ( sess, env, def, input) ;
65
66
auto crate = parse_input ( sess, p, input) ;
67
+ if ( parse_only) { ret; }
66
68
crate = creader. read_crates ( sess, crate , library_search_paths) ;
67
69
crate = resolve. resolve_crate ( sess, crate ) ;
68
70
auto typeck_result = typeck. check_crate ( sess, crate ) ;
@@ -132,6 +134,7 @@ impure fn main(vec[str] args) {
132
134
let bool shared = false ;
133
135
let bool pretty = false ;
134
136
let bool ls = false ;
137
+ let bool parse_only = false ;
135
138
let bool glue = false ;
136
139
137
140
// FIXME: Maybe we should support -O0, -O1, -Os, etc
@@ -156,6 +159,8 @@ impure fn main(vec[str] args) {
156
159
pretty = true ;
157
160
} else if ( _str. eq ( arg, "-ls" ) ) {
158
161
ls = true ;
162
+ } else if ( _str. eq ( arg, "-parse-only" ) ) {
163
+ parse_only = true ;
159
164
} else if ( _str. eq ( arg, "-o" ) ) {
160
165
if ( i+1 u < len) {
161
166
output_file = some ( args. ( i +1 u) ) ;
@@ -228,11 +233,13 @@ impure fn main(vec[str] args) {
228
233
parts += vec ( ".bc" ) ;
229
234
auto ofile = _str. concat ( parts) ;
230
235
compile_input ( sess, env, ifile, ofile, shared,
231
- optimize, library_search_paths) ;
236
+ optimize, parse_only,
237
+ library_search_paths) ;
232
238
}
233
239
case ( some[ str] ( ?ofile) ) {
234
240
compile_input ( sess, env, ifile, ofile, shared,
235
- optimize, library_search_paths) ;
241
+ optimize, parse_only,
242
+ library_search_paths) ;
236
243
}
237
244
}
238
245
}
0 commit comments