Files
coolguy eba6f63530 lower: 슬라이싱
x[a..b] 는 인덱스가 아니라 포인터와 길이를 만든다. 양쪽 끝을 -- 서로에 대해,
그리고 있는 것에 대해 -- 검사한 뒤에 포인터를 만든다. 유효한 범위의 빈
슬라이스는 괜찮고 끝보다 늦게 시작하는 것은 아니다.

파서가 x[a] 와 x[a..] 를 구분하지 못했다. 둘 다 b 만 있고 c 가 없어서
모양이 같았다. '..' 가 있었으면 노드에 표시한다.

정수 출력이 된다: fizz 12345 -678
2026-08-17 06:20:17 +09:00

21 lines
370 B
Plaintext

// EXIT:0
// OUTPUT:fizz 12345 -678
unit printnum;
import std.io;
import std.fmt;
fn show(v: i32) -> void {
var buf: [16]u8 = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];
let n: usize = fmt.fmt_i32(buf[..], v);
io.print(" ");
io.print(buf[0..n]);
}
fn main() -> i32 {
io.print("fizz");
show(12345);
show(0 - 678);
io.print("\n");
return 0;
}