1   | 
         | 
     2 //import scala.concurrent._  | 
         | 
     3 //import scala.concurrent.duration._  | 
         | 
     4 //import ExecutionContext.Implicits.global  | 
         | 
     5 //import scala.language.postfixOps   | 
         | 
     6 //import scala.language.reflectiveCalls  | 
         | 
     7   | 
         | 
     8   | 
         | 
     9   | 
         | 
    10 //lazy val f = Future { | 
         | 
    11   import CW8a._  | 
         | 
    12   | 
         | 
    13   val EVIL_urban = SEQ(STAR(STAR(CHAR('a'))), CHAR('b')) | 
         | 
    14   | 
         | 
    15   //println("1") | 
         | 
    16   assert(ders(List.fill(5)('a'), EVIL_urban) == SEQ(SEQ(STAR(CHAR('a')),STAR(STAR(CHAR('a')))),CHAR('b'))) | 
         | 
    17   //println("2") | 
         | 
    18   assert(ders(List('b'), EVIL_urban) == ONE) | 
         | 
    19   //println("3") | 
         | 
    20   assert(ders(List('b','b'), EVIL_urban) == ZERO) | 
         | 
    21   //println("4") | 
         | 
    22   assert(matcher(EVIL_urban, "a" * 5 ++ "b") == true)  | 
         | 
    23   //println("5") | 
         | 
    24   assert(matcher(EVIL_urban, "b") == true)  | 
         | 
    25   //println("6")  | 
         | 
    26   assert(matcher(EVIL_urban, "bb") == false)  | 
         | 
    27   //println("7") | 
         | 
    28   assert(matcher("abc", "abc") == true) | 
         | 
    29   //println("8") | 
         | 
    30   assert(matcher(("ab" | "a") ~ (ONE | "bc"), "abc") == true) | 
         | 
    31   //println("9") | 
         | 
    32   assert(matcher(ONE, "") == true)  | 
         | 
    33   //println("10") | 
         | 
    34   assert(matcher(ZERO, "") == false)  | 
         | 
    35   //println("11") | 
         | 
    36   assert(matcher(ONE | CHAR('a'), "") == true) | 
         | 
    37   //println("12") | 
         | 
    38   assert(matcher(ONE | CHAR('a'), "a") == true) | 
         | 
    39 //}  | 
         | 
    40   | 
         | 
    41 //Await.result(f, 90 second)  | 
         |