diff -r 1e6eca42d90b -r 8778d23fef92 cw2_marking/c5.sc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cw2_marking/c5.sc Mon Feb 03 12:34:38 2025 +0000 @@ -0,0 +1,23 @@ +// for primitive definitions +import $file.cw02 +import cw02._ + +def sz(r: Rexp): Int = r match { + case ZERO => 1 + case ONE => 1 + case CHAR(_) => 1 + case ALT(r1, r2) => 1 + sz(r1) + sz (r2) + case SEQ(r1, r2) => 1 + sz(r1) + sz (r2) + case STAR(r1) => 1 + sz(r1) + case PLUS(r1) => 1 + sz(r1) + case NTIMES(r1, n) => 1 + sz(r1) + case OPTIONAL(r1) => 1 + sz(r1) + case RECD(_, r1) => 1 + sz(r1) + case RANGE(_) => 1 +} + +assert(sz(RANGE("abc")) != 1) + + + +