equal
deleted
inserted
replaced
34 case Nil => r |
34 case Nil => r |
35 case c::s => ders(s, der(c, r)) |
35 case c::s => ders(s, der(c, r)) |
36 } |
36 } |
37 |
37 |
38 // main matcher function |
38 // main matcher function |
39 def matcher(r: Rexp, s: String) : Boolean = nullable(ders(s.toList, r)) |
39 def matches(r: Rexp, s: String) : Boolean = nullable(ders(s.toList, r)) |
40 |
40 |
41 //example from the homework |
41 //example from the homework |
42 //val r = STAR(ALT(SEQ(CHAR('a'), CHAR('b')), CHAR('b'))) |
42 //val r = STAR(ALT(SEQ(CHAR('a'), CHAR('b')), CHAR('b'))) |
43 //der('a', r) |
43 //der('a', r) |
44 //der('b', r) |
44 //der('b', r) |
64 val end = System.nanoTime() |
64 val end = System.nanoTime() |
65 (end - start)/(i * 1.0e9) |
65 (end - start)/(i * 1.0e9) |
66 } |
66 } |
67 |
67 |
68 for (i <- 1 to 29) { |
68 for (i <- 1 to 29) { |
69 println(i + ": " + "%.5f".format(time_needed(1, matcher(EVIL(i), "a" * i)))) |
69 println(i + ": " + "%.5f".format(time_needed(1, matches(EVIL(i), "a" * i)))) |
70 } |
70 } |