Files
ww/test/wcc/data/r778_scanner_lines/case.ww

41 lines
1.3 KiB
Plaintext

//ww:run-exit 52
// Migrated from 778_bufio_vstream_run row scanner_lines.
package main;
import os;
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;
};