| author | Christian Urban <christian.urban@kcl.ac.uk> | 
| Thu, 06 Jun 2024 22:18:15 +0100 | |
| changeset 487 | 4a22b233a5bf | 
| parent 472 | fbff6f601370 | 
| permissions | -rw-r--r-- | 
| 472 | 1  | 
|
2  | 
def urbanmain() = {
 | 
|
| 300 | 3  | 
|
| 472 | 4  | 
import M3._  | 
5  | 
||
6  | 
  val EVIL_urban = SEQ(STAR(STAR(CHAR('a'))), CHAR('b'))
 | 
|
| 300 | 7  | 
|
8  | 
||
| 472 | 9  | 
assert(simp(Iterator.iterate(ONE:Rexp)(r => SEQ(r, ONE | ONE)).drop(50).next) == ONE)  | 
10  | 
assert(simp(Iterator.iterate(ONE:Rexp)(r => ALT(r, r)).drop(20).next) == ONE)  | 
|
11  | 
assert(matcher(EVIL_urban, "a" * 1000000) == false)  | 
|
12  | 
assert(matcher(EVIL_urban, "a" * 1000000 ++ "b") == true)  | 
|
13  | 
}  |