Make vectors uglier ([]/~). Sorry. Should be temporary. Closes #2725.

This commit is contained in:
Michael Sullivan
2012-06-25 20:00:46 -07:00
parent c087aaf56b
commit 329eca6044
418 changed files with 4123 additions and 4034 deletions

View File

@@ -71,7 +71,7 @@ fn tok_str(++t: token) -> str {
}
}
fn buf_str(toks: [mut token], szs: [mut int], left: uint, right: uint,
fn buf_str(toks: [mut token]/~, szs: [mut int]/~, left: uint, right: uint,
lim: uint) -> str {
let n = vec::len(toks);
assert (n == vec::len(szs));
@@ -100,9 +100,9 @@ fn mk_printer(out: io::writer, linewidth: uint) -> printer {
// fall behind.
let n: uint = 3u * linewidth;
#debug("mk_printer %u", linewidth);
let token: [mut token] = vec::to_mut(vec::from_elem(n, EOF));
let size: [mut int] = vec::to_mut(vec::from_elem(n, 0));
let scan_stack: [mut uint] = vec::to_mut(vec::from_elem(n, 0u));
let token: [mut token]/~ = vec::to_mut(vec::from_elem(n, EOF));
let size: [mut int]/~ = vec::to_mut(vec::from_elem(n, 0));
let scan_stack: [mut uint]/~ = vec::to_mut(vec::from_elem(n, 0u));
@{out: out,
buf_len: n,
mut margin: linewidth as int,
@@ -206,8 +206,8 @@ type printer = @{
mut space: int, // number of spaces left on line
mut left: uint, // index of left side of input stream
mut right: uint, // index of right side of input stream
token: [mut token], // ring-buffr stream goes through
size: [mut int], // ring-buffer of calculated sizes
token: [mut token]/~, // ring-buffr stream goes through
size: [mut int]/~, // ring-buffer of calculated sizes
mut left_total: int, // running size of stream "...left"
mut right_total: int, // running size of stream "...right"
// pseudo-stack, really a ring too. Holds the
@@ -216,7 +216,7 @@ type printer = @{
// BEGIN (if there is any) on top of it. Stuff is flushed off the
// bottom as it becomes irrelevant due to the primary ring-buffer
// advancing.
mut scan_stack: [mut uint],
mut scan_stack: [mut uint]/~,
mut scan_stack_empty: bool, // top==bottom disambiguator
mut top: uint, // index of top of scan_stack
mut bottom: uint, // index of bottom of scan_stack
@@ -231,7 +231,7 @@ impl printer for printer {
// be very careful with this!
fn replace_last_token(t: token) { self.token[self.right] = t; }
fn pretty_print(t: token) {
#debug("pp [%u,%u]", self.left, self.right);
#debug("pp [%u,%u]/~", self.left, self.right);
alt t {
EOF {
if !self.scan_stack_empty {
@@ -248,17 +248,17 @@ impl printer for printer {
self.left = 0u;
self.right = 0u;
} else { self.advance_right(); }
#debug("pp BEGIN/buffer [%u,%u]", self.left, self.right);
#debug("pp BEGIN/buffer [%u,%u]/~", self.left, self.right);
self.token[self.right] = t;
self.size[self.right] = -self.right_total;
self.scan_push(self.right);
}
END {
if self.scan_stack_empty {
#debug("pp END/print [%u,%u]", self.left, self.right);
#debug("pp END/print [%u,%u]/~", self.left, self.right);
self.print(t, 0);
} else {
#debug("pp END/buffer [%u,%u]", self.left, self.right);
#debug("pp END/buffer [%u,%u]/~", self.left, self.right);
self.advance_right();
self.token[self.right] = t;
self.size[self.right] = -1;
@@ -272,7 +272,7 @@ impl printer for printer {
self.left = 0u;
self.right = 0u;
} else { self.advance_right(); }
#debug("pp BREAK/buffer [%u,%u]", self.left, self.right);
#debug("pp BREAK/buffer [%u,%u]/~", self.left, self.right);
self.check_stack(0);
self.scan_push(self.right);
self.token[self.right] = t;
@@ -281,10 +281,10 @@ impl printer for printer {
}
STRING(s, len) {
if self.scan_stack_empty {
#debug("pp STRING/print [%u,%u]", self.left, self.right);
#debug("pp STRING/print [%u,%u]/~", self.left, self.right);
self.print(t, len);
} else {
#debug("pp STRING/buffer [%u,%u]", self.left, self.right);
#debug("pp STRING/buffer [%u,%u]/~", self.left, self.right);
self.advance_right();
self.token[self.right] = t;
self.size[self.right] = len;
@@ -295,7 +295,7 @@ impl printer for printer {
}
}
fn check_stream() {
#debug("check_stream [%u, %u] with left_total=%d, right_total=%d",
#debug("check_stream [%u, %u]/~ with left_total=%d, right_total=%d",
self.left, self.right, self.left_total, self.right_total);
if self.right_total - self.left_total > self.space {
#debug("scan window is %d, longer than space on line (%d)",
@@ -347,7 +347,7 @@ impl printer for printer {
assert (self.right != self.left);
}
fn advance_left(++x: token, L: int) {
#debug("advnce_left [%u,%u], sizeof(%u)=%d", self.left, self.right,
#debug("advnce_left [%u,%u]/~, sizeof(%u)=%d", self.left, self.right,
self.left, L);
if L >= 0 {
self.print(x, L);