Skip to content

Commit f1afb0b

Browse files
committed
utilities for indented logs
1 parent ef566ac commit f1afb0b

File tree

2 files changed

+35
-0
lines changed

2 files changed

+35
-0
lines changed

src/etc/indenter

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
#!/usr/bin/perl -w
2+
3+
$ident = 0;
4+
while (<>) {
5+
if (/^rust: ">>/) {
6+
$indent += 1;
7+
} elsif (/^rust: "<</) {
8+
$indent -= 1;
9+
}
10+
11+
printf "%03d ", $indent;
12+
for ($i = 0; $i < $indent; $i++) {
13+
printf(" ");
14+
}
15+
print;
16+
}
17+

src/rustc/util/common.rs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,24 @@ import syntax::codemap::{span};
55
import syntax::visit;
66
import syntax::print;
77

8+
fn indent<R>(op: fn() -> R) -> R {
9+
// Use in conjunction with the log post-processor like `src/etc/indenter`
10+
// to make debug output more readable.
11+
#debug[">>"];
12+
let r <- op();
13+
#debug["<< (Result = %?)", r];
14+
ret r;
15+
}
16+
17+
resource _indenter(_i: ()) {
18+
#debug["<<"];
19+
}
20+
21+
fn indenter() -> _indenter {
22+
#debug[">>"];
23+
_indenter(())
24+
}
25+
826
type flag = hashmap<str, ()>;
927

1028
fn def_eq(a: ast::def_id, b: ast::def_id) -> bool {

0 commit comments

Comments
 (0)