The r-prefixed waves absorb the runtime, reject, and byte-compare rows of the migrated native carriers; each fixture is one directory with one case.ww and a //ww:error, //ww:compile, //ww:run, or //ww:run-exit directive covering both frontends.
26 lines
597 B
Plaintext
26 lines
597 B
Plaintext
//ww:run-exit 219
|
|
package main;
|
|
import encoding.utf8;
|
|
fn classify(d: *utf8.decoder) int = {
|
|
match (utf8.next(d)) {
|
|
case let r: rune => return 1;
|
|
case let dn: utf8.done => return 2;
|
|
case let m: utf8.more => return 3;
|
|
case let e: utf8.invalid => return 4;
|
|
};
|
|
return 0;
|
|
};
|
|
export fn main() int = {
|
|
let g: []u8 = [65u8];
|
|
let dg = utf8.decode(g);
|
|
let a = classify(&dg);
|
|
let b = classify(&dg);
|
|
let bad: []u8 = [255u8];
|
|
let db = utf8.decode(bad);
|
|
let c = classify(&db);
|
|
let tr: []u8 = [195u8];
|
|
let dt = utf8.decode(tr);
|
|
let e = classify(&dt);
|
|
return a * 1000 + b * 100 + c * 10 + e;
|
|
};
|