equal
deleted
inserted
replaced
|
1 // for primitive definitions |
|
2 import $file.cw02 |
|
3 import cw02._ |
|
4 |
|
5 def sz(r: Rexp): Int = r match { |
|
6 case ZERO => 1 |
|
7 case ONE => 1 |
|
8 case CHAR(_) => 1 |
|
9 case ALT(r1, r2) => 1 + sz(r1) + sz (r2) |
|
10 case SEQ(r1, r2) => 1 + sz(r1) + sz (r2) |
|
11 case STAR(r1) => 1 + sz(r1) |
|
12 case PLUS(r1) => 1 + sz(r1) |
|
13 case NTIMES(r1, n) => 1 + sz(r1) |
|
14 case OPTIONAL(r1) => 1 + sz(r1) |
|
15 case RECD(_, r1) => 1 + sz(r1) |
|
16 case RANGE(_) => 1 |
|
17 } |
|
18 |
|
19 assert(sz(RANGE("abc")) != 1) |
|
20 |
|
21 |
|
22 |
|
23 |