progs/display/thompson1.scala
changeset 738 084e2843f478
parent 737 14a348d050b3
child 739 220aea0e5517
--- a/progs/display/thompson1.scala	Tue Jul 21 00:12:34 2020 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-// Thompson Construction (Part 1)
-// (needs  :load dfa.scala
-//         :load nfa.scala
-//         :load enfa.scala)
-
-
-// states for Thompson construction
-case class TState(i: Int) extends State
-
-object TState {
-  var counter = 0
-  
-  def apply() : TState = {
-    counter += 1;
-    new TState(counter - 1)
-  }
-}
-
-
-// a type abbreviation
-type NFAt = NFA[TState, Char]
-
-
-// a NFA that does not accept any string
-def NFA_ZERO(): NFAt = {
-  val Q = TState()
-  NFA(Set(Q), { case _ => Set() }, Set())
-}
-
-// a NFA that accepts the empty string
-def NFA_ONE() : NFAt = {
-  val Q = TState()
-  NFA(Set(Q), { case _ => Set() }, Set(Q))
-}
-
-// a NFA that accepts the string "c"
-def NFA_CHAR(c: Char) : NFAt = {
-  val Q1 = TState()
-  val Q2 = TState()
-  NFA(Set(Q1), { case (Q1, d) if (c == d) => Set(Q2) }, Set(Q2))
-}