diff --git a/lib/fmt/fmt.ww b/lib/fmt/fmt.ww index 9905e625..80e269ec 100644 --- a/lib/fmt/fmt.ww +++ b/lib/fmt/fmt.ww @@ -43,7 +43,7 @@ fn i64dec(v: i64) str = { if (n < 0) { neg = true; n = -n; }; let tmp: [20]u8; let i: i32 = 0; - if (n == 0) { tmp[0] = 48u8; i = 1; }; + if (n == 0) { tmp[0] = '0'; i = 1; }; for (n > 0) { let d: i64 = n % 10i64; tmp[i] = (d + 48i64): u8; @@ -51,7 +51,7 @@ fn i64dec(v: i64) str = { i += 1; }; let out: i32 = 0; - if (neg) { i64dec_buf[out] = 45u8; out += 1; }; // '-' + if (neg) { i64dec_buf[out] = '-'; out += 1; }; for (i > 0) { i -= 1; i64dec_buf[out] = tmp[i]; @@ -186,7 +186,7 @@ fn scandigits(s: str, pos: *i32) i32 = { let any: bool = false; for (*pos < s.len) { let c: u8 = s[*pos]; - if (c < 48u8 || c > 57u8) { + if (c < '0' || c > '9') { if (!any) { fmtabort(); }; return v; }; @@ -206,25 +206,25 @@ fn scanmods(s: str, pos: *i32, m: *mods) void = { m.pad = 32: rune; // ' ' — Hare iter.ha:130 for (*pos < s.len) { let c: u8 = s[*pos]; - if (c == 125u8) { return; }; // '}' + if (c == '}') { return; }; *pos += 1; - if (c == 45u8) { m.alignment = alignment.LEFT; } // '-' - else if (c == 61u8) { m.alignment = alignment.CENTER; } // '=' - else if (c == 95u8) { // '_' + if (c == '-') { m.alignment = alignment.LEFT; } + else if (c == '=') { m.alignment = alignment.CENTER; } + else if (c == '_') { if (*pos >= s.len) { fmtabort(); }; m.pad = s[*pos]: rune; *pos += 1; } - else if (c == 32u8) { m.neg = neg.SPACE; } // ' ' - else if (c == 43u8) { m.neg = neg.PLUS; } // '+' - else if (c == 120u8) { m.base = strconv.base.HEX_LOWER; } // 'x' - else if (c == 88u8) { m.base = strconv.base.HEX_UPPER; } // 'X' - else if (c == 111u8) { m.base = strconv.base.OCT; } // 'o' - else if (c == 98u8) { m.base = strconv.base.BIN; } // 'b' - else if (c == 46u8) { // '.' + else if (c == ' ') { m.neg = neg.SPACE; } + else if (c == '+') { m.neg = neg.PLUS; } + else if (c == 'x') { m.base = strconv.base.HEX_LOWER; } + else if (c == 'X') { m.base = strconv.base.HEX_UPPER; } + else if (c == 'o') { m.base = strconv.base.OCT; } + else if (c == 'b') { m.base = strconv.base.BIN; } + else if (c == '.') { m.prec = scandigits(s, pos); } - else if (c >= 49u8 && c <= 57u8) { // '1'..'9' + else if (c >= '1' && c <= '9') { *pos -= 1; m.width = scandigits(s, pos); } @@ -297,7 +297,7 @@ fn rawlenf64(v: f64, m: *mods) i32 = { let view: str = strconv.f64tos(v); let body: i32 = view.len; let had_neg: bool = false; - if (body > 0 && view.ptr[0] == 45u8) { + if (body > 0 && view.ptr[0] == '-') { had_neg = true; body -= 1; }; @@ -348,7 +348,7 @@ fn formatraw(s: io.handle, arg: formattable, m: *mods) (size | io.error) = { let pi: i32 = 0; for (pi < pad0) { let buf: [1]u8; - buf[0] = 48u8; // '0' + buf[0] = '0'; let r: (size | io.error) = putbytes(s, &buf[0], 1); match (r) { case let n: size => { total += n; }; @@ -385,7 +385,7 @@ fn formatraw(s: io.handle, arg: formattable, m: *mods) (size | io.error) = { // so this peel is a no-op for them. let view: str = strconv.f64tos(v); let neg_flag: bool = false; - if (view.len > 0 && view.ptr[0] == 45u8) { // '-' + if (view.len > 0 && view.ptr[0] == '-') { neg_flag = true; view.ptr = view.ptr + 1u64; view.len -= 1; @@ -529,10 +529,10 @@ export fn fprintf(s: io.handle, fmt: str, args: field...) (size | io.error) = { let checkunused: bool = true; for (i < fmt.len) { let c: u8 = fmt[i]; - if (c == 123u8) { // '{' + if (c == '{') { i += 1; if (i >= fmt.len) { fmtabort(); }; - if (fmt[i] == 123u8) { // '{{' literal + if (fmt[i] == '{') { // '{{' literal let r: (size | io.error) = putbytes(s, fmt.ptr + i: u64, 1); match (r) { case let n: size => { total += n; }; @@ -542,7 +542,7 @@ export fn fprintf(s: io.handle, fmt: str, args: field...) (size | io.error) = { } else { let idx: i32 = 0; let d: u8 = fmt[i]; - if (d >= 48u8 && d <= 57u8) { + if (d >= '0' && d <= '9') { checkunused = false; idx = scandigits(fmt, &i); } else { @@ -551,11 +551,11 @@ export fn fprintf(s: io.handle, fmt: str, args: field...) (size | io.error) = { }; let m: mods; modsinit(&m); - if (i < fmt.len && fmt[i] == 58u8) { // ':' + if (i < fmt.len && fmt[i] == ':') { i += 1; scanmods(fmt, &i, &m); }; - if (i >= fmt.len || fmt[i] != 125u8) { fmtabort(); }; + if (i >= fmt.len || fmt[i] != '}') { fmtabort(); }; i += 1; if (idx >= args.len) { fmtabort(); }; let r: (size | io.error) = formatfield(s, args[idx], &m); @@ -564,9 +564,9 @@ export fn fprintf(s: io.handle, fmt: str, args: field...) (size | io.error) = { case let e: io.error => return e; }; }; - } else if (c == 125u8) { // '}' + } else if (c == '}') { i += 1; - if (i >= fmt.len || fmt[i] != 125u8) { fmtabort(); }; + if (i >= fmt.len || fmt[i] != '}') { fmtabort(); }; let r: (size | io.error) = putbytes(s, fmt.ptr + i: u64, 1); match (r) { case let n: size => { total += n; }; diff --git a/lib/strconv/ftos.ww b/lib/strconv/ftos.ww index 26af212c..64390d31 100644 --- a/lib/strconv/ftos.ww +++ b/lib/strconv/ftos.ww @@ -603,13 +603,13 @@ fn encode_f_dec(d: *decimal, buf: []u8, out: i32) i32 = { let i: i32 = lo; for (i < hi) { if (i == d.dp) { - buf[o] = 46u8; // '.' + buf[o] = '.'; o += 1i32; }; if (0i32 <= i && i < (d.nd: i32)) { buf[o] = (d.digits[i] + 48u8): u8; } else { - buf[o] = 48u8; // '0' + buf[o] = '0'; }; o += 1i32; i += 1i32; @@ -625,7 +625,7 @@ fn encode_e_dec(d: *decimal, buf: []u8, out: i32) i32 = { buf[o] = (d.digits[0] + 48u8): u8; o += 1i32; if ((d.nd: i32) > 1i32) { - buf[o] = 46u8; // '.' + buf[o] = '.'; o += 1i32; }; let i: size = (1u64: size); @@ -634,12 +634,12 @@ fn encode_e_dec(d: *decimal, buf: []u8, out: i32) i32 = { o += 1i32; i += (1u64: size); }; - buf[o] = 101u8; // 'e' + buf[o] = 'e'; o += 1i32; let e: i32 = d.dp - 1i32; if (e < 0i32) { e = -e; - buf[o] = 45u8; // '-' + buf[o] = '-'; o += 1i32; }; // Hoisted uint casts (ww parser rejects `(N: uint)` inside `[ ]`). @@ -692,7 +692,7 @@ export fn f64tos(n: f64) str = { return r; }; if (sign) { - f64tos_buf[o] = 45u8; // '-' + f64tos_buf[o] = '-'; o += 1i32; }; if (special) { @@ -701,7 +701,7 @@ export fn f64tos(n: f64) str = { return r; }; if (exponent == 0u32 && mantissa == 0u64) { - f64tos_buf[o] = 48u8; // '0' (encode_zero, G/void/NONE) + f64tos_buf[o] = '0'; // encode_zero, G/void/NONE o += 1i32; r.len = o; return r; @@ -720,7 +720,7 @@ export fn f64tos(n: f64) str = { // fallback (ftos.ha:365). f == G → trim (ftos.ha:386). trim(pd); if (pd.nd == (0u64: size)) { - f64tos_buf[o] = 48u8; // rounded to zero + f64tos_buf[o] = '0'; // rounded to zero o += 1i32; } else if (pd.dp < -1i32 || (pd.dp - (pd.nd: i32)) > 2i32) { o = encode_e_dec(pd, f64tos_buf[0:32], o); @@ -759,7 +759,7 @@ export fn f32tos(n: f32) str = { return r; }; if (sign) { - f32tos_buf[o] = 45u8; // '-' + f32tos_buf[o] = '-'; o += 1i32; }; if (special) { @@ -768,7 +768,7 @@ export fn f32tos(n: f32) str = { return r; }; if (exponent == 0u32 && mantissa == 0u32) { - f32tos_buf[o] = 48u8; // '0' (encode_zero, G/void/NONE) + f32tos_buf[o] = '0'; // encode_zero, G/void/NONE o += 1i32; r.len = o; return r; @@ -781,7 +781,7 @@ export fn f32tos(n: f32) str = { init_dec_mant_exp(pd, (dd.mantissa: u64), (dd.exponent: i32)); trim(pd); if (pd.nd == (0u64: size)) { - f32tos_buf[o] = 48u8; // rounded to zero + f32tos_buf[o] = '0'; // rounded to zero o += 1i32; } else if (pd.dp < -1i32 || (pd.dp - (pd.nd: i32)) > 2i32) { o = encode_e_dec(pd, f32tos_buf[0:32], o); diff --git a/selfhost/cmd/w6c/main.combined.ww b/selfhost/cmd/w6c/main.combined.ww index 5d68a199..e3e43010 100644 --- a/selfhost/cmd/w6c/main.combined.ww +++ b/selfhost/cmd/w6c/main.combined.ww @@ -4053,13 +4053,13 @@ fn encode_f_dec(d: *decimal, buf: []u8, out: i32) i32 = { let i: i32 = lo; for (i < hi) { if (i == d.dp) { - buf[o] = 46u8; // '.' + buf[o] = '.'; o += 1i32; }; if (0i32 <= i && i < (d.nd: i32)) { buf[o] = (d.digits[i] + 48u8): u8; } else { - buf[o] = 48u8; // '0' + buf[o] = '0'; }; o += 1i32; i += 1i32; @@ -4075,7 +4075,7 @@ fn encode_e_dec(d: *decimal, buf: []u8, out: i32) i32 = { buf[o] = (d.digits[0] + 48u8): u8; o += 1i32; if ((d.nd: i32) > 1i32) { - buf[o] = 46u8; // '.' + buf[o] = '.'; o += 1i32; }; let i: size = (1u64: size); @@ -4084,12 +4084,12 @@ fn encode_e_dec(d: *decimal, buf: []u8, out: i32) i32 = { o += 1i32; i += (1u64: size); }; - buf[o] = 101u8; // 'e' + buf[o] = 'e'; o += 1i32; let e: i32 = d.dp - 1i32; if (e < 0i32) { e = -e; - buf[o] = 45u8; // '-' + buf[o] = '-'; o += 1i32; }; // Hoisted uint casts (ww parser rejects `(N: uint)` inside `[ ]`). @@ -4142,7 +4142,7 @@ export fn f64tos(n: f64) str = { return r; }; if (sign) { - f64tos_buf[o] = 45u8; // '-' + f64tos_buf[o] = '-'; o += 1i32; }; if (special) { @@ -4151,7 +4151,7 @@ export fn f64tos(n: f64) str = { return r; }; if (exponent == 0u32 && mantissa == 0u64) { - f64tos_buf[o] = 48u8; // '0' (encode_zero, G/void/NONE) + f64tos_buf[o] = '0'; // encode_zero, G/void/NONE o += 1i32; r.len = o; return r; @@ -4170,7 +4170,7 @@ export fn f64tos(n: f64) str = { // fallback (ftos.ha:365). f == G → trim (ftos.ha:386). trim(pd); if (pd.nd == (0u64: size)) { - f64tos_buf[o] = 48u8; // rounded to zero + f64tos_buf[o] = '0'; // rounded to zero o += 1i32; } else if (pd.dp < -1i32 || (pd.dp - (pd.nd: i32)) > 2i32) { o = encode_e_dec(pd, f64tos_buf[0:32], o); @@ -4209,7 +4209,7 @@ export fn f32tos(n: f32) str = { return r; }; if (sign) { - f32tos_buf[o] = 45u8; // '-' + f32tos_buf[o] = '-'; o += 1i32; }; if (special) { @@ -4218,7 +4218,7 @@ export fn f32tos(n: f32) str = { return r; }; if (exponent == 0u32 && mantissa == 0u32) { - f32tos_buf[o] = 48u8; // '0' (encode_zero, G/void/NONE) + f32tos_buf[o] = '0'; // encode_zero, G/void/NONE o += 1i32; r.len = o; return r; @@ -4231,7 +4231,7 @@ export fn f32tos(n: f32) str = { init_dec_mant_exp(pd, (dd.mantissa: u64), (dd.exponent: i32)); trim(pd); if (pd.nd == (0u64: size)) { - f32tos_buf[o] = 48u8; // rounded to zero + f32tos_buf[o] = '0'; // rounded to zero o += 1i32; } else if (pd.dp < -1i32 || (pd.dp - (pd.nd: i32)) > 2i32) { o = encode_e_dec(pd, f32tos_buf[0:32], o); diff --git a/selfhost/cmd/wwdump/main.combined.ww b/selfhost/cmd/wwdump/main.combined.ww index 2836b9a0..c1ae3580 100644 --- a/selfhost/cmd/wwdump/main.combined.ww +++ b/selfhost/cmd/wwdump/main.combined.ww @@ -2006,13 +2006,13 @@ fn encode_f_dec(d: *decimal, buf: []u8, out: i32) i32 = { let i: i32 = lo; for (i < hi) { if (i == d.dp) { - buf[o] = 46u8; // '.' + buf[o] = '.'; o += 1i32; }; if (0i32 <= i && i < (d.nd: i32)) { buf[o] = (d.digits[i] + 48u8): u8; } else { - buf[o] = 48u8; // '0' + buf[o] = '0'; }; o += 1i32; i += 1i32; @@ -2028,7 +2028,7 @@ fn encode_e_dec(d: *decimal, buf: []u8, out: i32) i32 = { buf[o] = (d.digits[0] + 48u8): u8; o += 1i32; if ((d.nd: i32) > 1i32) { - buf[o] = 46u8; // '.' + buf[o] = '.'; o += 1i32; }; let i: size = (1u64: size); @@ -2037,12 +2037,12 @@ fn encode_e_dec(d: *decimal, buf: []u8, out: i32) i32 = { o += 1i32; i += (1u64: size); }; - buf[o] = 101u8; // 'e' + buf[o] = 'e'; o += 1i32; let e: i32 = d.dp - 1i32; if (e < 0i32) { e = -e; - buf[o] = 45u8; // '-' + buf[o] = '-'; o += 1i32; }; // Hoisted uint casts (ww parser rejects `(N: uint)` inside `[ ]`). @@ -2095,7 +2095,7 @@ export fn f64tos(n: f64) str = { return r; }; if (sign) { - f64tos_buf[o] = 45u8; // '-' + f64tos_buf[o] = '-'; o += 1i32; }; if (special) { @@ -2104,7 +2104,7 @@ export fn f64tos(n: f64) str = { return r; }; if (exponent == 0u32 && mantissa == 0u64) { - f64tos_buf[o] = 48u8; // '0' (encode_zero, G/void/NONE) + f64tos_buf[o] = '0'; // encode_zero, G/void/NONE o += 1i32; r.len = o; return r; @@ -2123,7 +2123,7 @@ export fn f64tos(n: f64) str = { // fallback (ftos.ha:365). f == G → trim (ftos.ha:386). trim(pd); if (pd.nd == (0u64: size)) { - f64tos_buf[o] = 48u8; // rounded to zero + f64tos_buf[o] = '0'; // rounded to zero o += 1i32; } else if (pd.dp < -1i32 || (pd.dp - (pd.nd: i32)) > 2i32) { o = encode_e_dec(pd, f64tos_buf[0:32], o); @@ -2162,7 +2162,7 @@ export fn f32tos(n: f32) str = { return r; }; if (sign) { - f32tos_buf[o] = 45u8; // '-' + f32tos_buf[o] = '-'; o += 1i32; }; if (special) { @@ -2171,7 +2171,7 @@ export fn f32tos(n: f32) str = { return r; }; if (exponent == 0u32 && mantissa == 0u32) { - f32tos_buf[o] = 48u8; // '0' (encode_zero, G/void/NONE) + f32tos_buf[o] = '0'; // encode_zero, G/void/NONE o += 1i32; r.len = o; return r; @@ -2184,7 +2184,7 @@ export fn f32tos(n: f32) str = { init_dec_mant_exp(pd, (dd.mantissa: u64), (dd.exponent: i32)); trim(pd); if (pd.nd == (0u64: size)) { - f32tos_buf[o] = 48u8; // rounded to zero + f32tos_buf[o] = '0'; // rounded to zero o += 1i32; } else if (pd.dp < -1i32 || (pd.dp - (pd.nd: i32)) > 2i32) { o = encode_e_dec(pd, f32tos_buf[0:32], o); diff --git a/selfhost/test/smoke.combined.ww b/selfhost/test/smoke.combined.ww index 2988c1ea..1d0e2687 100644 --- a/selfhost/test/smoke.combined.ww +++ b/selfhost/test/smoke.combined.ww @@ -2006,13 +2006,13 @@ fn encode_f_dec(d: *decimal, buf: []u8, out: i32) i32 = { let i: i32 = lo; for (i < hi) { if (i == d.dp) { - buf[o] = 46u8; // '.' + buf[o] = '.'; o += 1i32; }; if (0i32 <= i && i < (d.nd: i32)) { buf[o] = (d.digits[i] + 48u8): u8; } else { - buf[o] = 48u8; // '0' + buf[o] = '0'; }; o += 1i32; i += 1i32; @@ -2028,7 +2028,7 @@ fn encode_e_dec(d: *decimal, buf: []u8, out: i32) i32 = { buf[o] = (d.digits[0] + 48u8): u8; o += 1i32; if ((d.nd: i32) > 1i32) { - buf[o] = 46u8; // '.' + buf[o] = '.'; o += 1i32; }; let i: size = (1u64: size); @@ -2037,12 +2037,12 @@ fn encode_e_dec(d: *decimal, buf: []u8, out: i32) i32 = { o += 1i32; i += (1u64: size); }; - buf[o] = 101u8; // 'e' + buf[o] = 'e'; o += 1i32; let e: i32 = d.dp - 1i32; if (e < 0i32) { e = -e; - buf[o] = 45u8; // '-' + buf[o] = '-'; o += 1i32; }; // Hoisted uint casts (ww parser rejects `(N: uint)` inside `[ ]`). @@ -2095,7 +2095,7 @@ export fn f64tos(n: f64) str = { return r; }; if (sign) { - f64tos_buf[o] = 45u8; // '-' + f64tos_buf[o] = '-'; o += 1i32; }; if (special) { @@ -2104,7 +2104,7 @@ export fn f64tos(n: f64) str = { return r; }; if (exponent == 0u32 && mantissa == 0u64) { - f64tos_buf[o] = 48u8; // '0' (encode_zero, G/void/NONE) + f64tos_buf[o] = '0'; // encode_zero, G/void/NONE o += 1i32; r.len = o; return r; @@ -2123,7 +2123,7 @@ export fn f64tos(n: f64) str = { // fallback (ftos.ha:365). f == G → trim (ftos.ha:386). trim(pd); if (pd.nd == (0u64: size)) { - f64tos_buf[o] = 48u8; // rounded to zero + f64tos_buf[o] = '0'; // rounded to zero o += 1i32; } else if (pd.dp < -1i32 || (pd.dp - (pd.nd: i32)) > 2i32) { o = encode_e_dec(pd, f64tos_buf[0:32], o); @@ -2162,7 +2162,7 @@ export fn f32tos(n: f32) str = { return r; }; if (sign) { - f32tos_buf[o] = 45u8; // '-' + f32tos_buf[o] = '-'; o += 1i32; }; if (special) { @@ -2171,7 +2171,7 @@ export fn f32tos(n: f32) str = { return r; }; if (exponent == 0u32 && mantissa == 0u32) { - f32tos_buf[o] = 48u8; // '0' (encode_zero, G/void/NONE) + f32tos_buf[o] = '0'; // encode_zero, G/void/NONE o += 1i32; r.len = o; return r; @@ -2184,7 +2184,7 @@ export fn f32tos(n: f32) str = { init_dec_mant_exp(pd, (dd.mantissa: u64), (dd.exponent: i32)); trim(pd); if (pd.nd == (0u64: size)) { - f32tos_buf[o] = 48u8; // rounded to zero + f32tos_buf[o] = '0'; // rounded to zero o += 1i32; } else if (pd.dp < -1i32 || (pd.dp - (pd.nd: i32)) > 2i32) { o = encode_e_dec(pd, f32tos_buf[0:32], o);