equal
deleted
inserted
replaced
126 case SEQ(r1, r2) => 1 + size(r1) + size(r2) |
126 case SEQ(r1, r2) => 1 + size(r1) + size(r2) |
127 case STAR(r) => 1 + size(r) |
127 case STAR(r) => 1 + size(r) |
128 } |
128 } |
129 |
129 |
130 // the expicit expansion in EVIL1(n) increases |
130 // the expicit expansion in EVIL1(n) increases |
131 // drastically its size |
131 // drastically its size - (a?){n} a{n} |
132 |
132 |
133 size(EVIL1(1)) // 5 |
133 size(EVIL1(1)) // 5 |
134 size(EVIL1(3)) // 17 |
134 size(EVIL1(3)) // 17 |
135 size(EVIL1(5)) // 29 |
135 size(EVIL1(5)) // 29 |
136 size(EVIL1(7)) // 41 |
136 size(EVIL1(7)) // 41 |
137 size(EVIL1(20)) // 119 |
137 size(EVIL1(20)) // 119 |
|
138 |
|
139 size(ders(("a" * 20).toList, EVIL1(20))) |
|
140 |
138 |
141 |
139 // given a regular expression and building successive |
142 // given a regular expression and building successive |
140 // derivatives might result into bigger and bigger |
143 // derivatives might result into bigger and bigger |
141 // regular expressions...here is an example for this: |
144 // regular expressions...here is an example for this: |
142 |
145 |