--- /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)
+
+
+
+