Slightly more aggressive about inserting whitespace. Getting frustrated with comments.
This commit is contained in:
parent
649a7bf38a
commit
ae16639dfa
2 changed files with 25 additions and 9 deletions
|
@ -442,6 +442,16 @@ obj printer(io::writer out,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn top() -> print_stack_elt {
|
||||||
|
auto n = vec::len(print_stack);
|
||||||
|
let print_stack_elt top =
|
||||||
|
rec(offset=0, pbreak=broken(inconsistent));;
|
||||||
|
if (n != 0u) {
|
||||||
|
top = print_stack.(n - 1u);
|
||||||
|
}
|
||||||
|
ret top;
|
||||||
|
}
|
||||||
|
|
||||||
fn print(token x, int L) {
|
fn print(token x, int L) {
|
||||||
log #fmt("print %s %d (remaining line space=%d)",
|
log #fmt("print %s %d (remaining line space=%d)",
|
||||||
tok_str(x), L, space);
|
tok_str(x), L, space);
|
||||||
|
@ -471,12 +481,7 @@ obj printer(io::writer out,
|
||||||
|
|
||||||
case (BREAK(?b)) {
|
case (BREAK(?b)) {
|
||||||
|
|
||||||
auto n = vec::len(print_stack);
|
auto top = self.top();
|
||||||
let print_stack_elt top =
|
|
||||||
rec(offset=0, pbreak=broken(inconsistent));;
|
|
||||||
if (n != 0u) {
|
|
||||||
top = print_stack.(n - 1u);
|
|
||||||
}
|
|
||||||
|
|
||||||
alt (top.pbreak) {
|
alt (top.pbreak) {
|
||||||
case (fits) {
|
case (fits) {
|
||||||
|
@ -552,6 +557,9 @@ fn word(printer p, str wrd) {
|
||||||
fn huge_word(printer p, str wrd) {
|
fn huge_word(printer p, str wrd) {
|
||||||
p.pretty_print(STRING(wrd, 0xffff));
|
p.pretty_print(STRING(wrd, 0xffff));
|
||||||
}
|
}
|
||||||
|
fn zero_word(printer p, str wrd) {
|
||||||
|
p.pretty_print(STRING(wrd, 0));
|
||||||
|
}
|
||||||
fn spaces(printer p, uint n) { break_offset(p, n, 0); }
|
fn spaces(printer p, uint n) { break_offset(p, n, 0); }
|
||||||
fn zerobreak(printer p) { spaces(p, 0u); }
|
fn zerobreak(printer p) { spaces(p, 0u); }
|
||||||
fn space(printer p) { spaces(p, 1u); }
|
fn space(printer p) { spaces(p, 1u); }
|
||||||
|
|
|
@ -18,6 +18,7 @@ import pp::cbox;
|
||||||
import pp::ibox;
|
import pp::ibox;
|
||||||
import pp::word;
|
import pp::word;
|
||||||
import pp::huge_word;
|
import pp::huge_word;
|
||||||
|
import pp::zero_word;
|
||||||
import pp::space;
|
import pp::space;
|
||||||
import pp::zerobreak;
|
import pp::zerobreak;
|
||||||
import pp::hardbreak;
|
import pp::hardbreak;
|
||||||
|
@ -1191,14 +1192,21 @@ fn print_comment(&ps s, lexer::cmnt cmnt) {
|
||||||
word(s.s, cmnt.lines.(0));
|
word(s.s, cmnt.lines.(0));
|
||||||
zerobreak(s.s);
|
zerobreak(s.s);
|
||||||
}
|
}
|
||||||
case (_) {
|
case (lexer::isolated) {
|
||||||
|
hardbreak(s.s);
|
||||||
|
for (str line in cmnt.lines) {
|
||||||
|
zero_word(s.s, line);
|
||||||
|
hardbreak(s.s);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
case (lexer::trailing) {
|
||||||
if (vec::len(cmnt.lines) == 1u) {
|
if (vec::len(cmnt.lines) == 1u) {
|
||||||
word(s.s, cmnt.lines.(0));
|
zero_word(s.s, cmnt.lines.(0));
|
||||||
hardbreak(s.s);
|
hardbreak(s.s);
|
||||||
} else {
|
} else {
|
||||||
ibox(s.s, 0u);
|
ibox(s.s, 0u);
|
||||||
for (str line in cmnt.lines) {
|
for (str line in cmnt.lines) {
|
||||||
word(s.s, line);
|
zero_word(s.s, line);
|
||||||
hardbreak(s.s);
|
hardbreak(s.s);
|
||||||
}
|
}
|
||||||
end(s.s);
|
end(s.s);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue