//ww:run-exit 52 // Migrated from 778_bufio_vstream_run row scanner_lines. package main; import bufio; import errors; import memio; import io; export fn main() i32 = { let raw: [8]u8; raw[0]=97u8; raw[1]=98u8; raw[2]=10u8; raw[3]=99u8; raw[4]=10u8; raw[5]=100u8; raw[6]=101u8; raw[7]=102u8; let mst: memio.stream = memio.dynamicfrom(raw[0:8]); let vs: io.stream = &mst.vt; let win: [16]u8; let sc: bufio.scanner = bufio.newscannerbuf(vs, win[0:16]); let ok: i32 = 0; match (bufio.scanline(&sc)) { case let s: str => { if (s.len == 2 && s[0] == 97u8 && s[1] == 98u8) { ok += 1; }; }; case io.eof => { return 81; }; case let e: io.error => { return 82; }; case errors.overflow => { return 83; }; }; match (bufio.scanline(&sc)) { case let s: str => { if (s.len == 1 && s[0] == 99u8) { ok += 1; }; }; case io.eof => { return 84; }; case let e: io.error => { return 85; }; case errors.overflow => { return 86; }; }; match (bufio.scanline(&sc)) { case let s: str => { return 87; }; case io.eof => { ok += 1; }; case let e: io.error => { return 88; }; case errors.overflow => { return 89; }; }; bufio.finish(&sc); if (ok != 3) { return 90; }; return 52; };