bufio: make scanning bounded and incremental

This commit is contained in:
2026-08-09 18:17:42 +09:00
parent 09b6f22e85
commit a04de3e02b
7 changed files with 362 additions and 139 deletions

View File

@@ -3,6 +3,7 @@
package main;
import os;
import bufio;
import errors;
import memio;
import io;
export fn main() i32 = {
@@ -18,20 +19,20 @@ export fn main() i32 = {
case let b: u8 => { fb = b; };
case io.eof => { return 81; };
case let e: io.error => { return 82; };
case bufio.overflow => { return 92; };
case errors.overflow => { return 92; };
};
if (fb != 65u8) { return 83; };
match (bufio.scanbytes(&sc, 44u8)) {
case let bs: []u8 => { if (bs.len != 1 || bs[0] != 66u8) { return 84; }; };
case io.eof => { return 85; };
case let e: io.error => { return 86; };
case bufio.overflow => { return 87; };
case errors.overflow => { return 87; };
};
match (bufio.scanbytes(&sc, 44u8)) {
case let bs: []u8 => { if (bs.len != 2 || bs[0] != 67u8 || bs[1] != 68u8) { return 88; }; };
case io.eof => { return 89; };
case let e: io.error => { return 90; };
case bufio.overflow => { return 91; };
case errors.overflow => { return 91; };
};
return 53;
};