equal
deleted
inserted
replaced
306 // given a state and a character, what is the set of |
306 // given a state and a character, what is the set of |
307 // next states? if there is none => empty set |
307 // next states? if there is none => empty set |
308 def next(q: A, c: C) : Set[A] = |
308 def next(q: A, c: C) : Set[A] = |
309 Try(delta(q, c)) getOrElse Set[A]() |
309 Try(delta(q, c)) getOrElse Set[A]() |
310 |
310 |
|
311 def nexts(qs: Set[A], c: C) : Set[A] = |
|
312 qs.flatMap(next(_, c)) |
|
313 |
311 // depth-first version of accepts |
314 // depth-first version of accepts |
312 def search(q: A, s: List[C]) : Boolean = s match { |
315 def search(q: A, s: List[C]) : Boolean = s match { |
313 case Nil => fins(q) |
316 case Nil => fins(q) |
314 case c::cs => next(q, c).exists(search(_, cs)) |
317 case c::cs => next(q, c).exists(search(_, cs)) |
315 } |
318 } |