module Language.HaLex.FaClasses where
import Language.HaLex.Dfa
import Language.HaLex.Ndfa
import Language.HaLex.FaOperations
import Language.HaLex.Equivalence
import Language.HaLex.Minimize
import Language.HaLex.FaAsDiGraph
class Fa fa st sy where
accept :: fa st sy -> [sy] -> Bool
sizeFa :: fa st sy -> Int
equiv :: fa st sy -> fa st sy -> Bool
minimize :: fa st sy -> Dfa [[st]] sy
reverseFa :: fa st sy -> Ndfa st sy
deadstates :: fa st sy -> [st]
toHaskell' :: fa st sy -> String -> IO ()
toGraph :: fa st sy -> String -> String
toGraphIO :: fa st sy -> String -> IO()
unionFa :: fa st sy -> fa st sy -> Ndfa st sy
concatFa :: fa st sy -> fa st sy -> Ndfa st sy
starFa :: fa st sy -> Ndfa st sy
plusFa :: fa st sy -> Ndfa st sy
instance (Show st , Show sy , Ord st , Ord sy) => Fa Dfa st sy where
accept = dfaaccept
sizeFa = sizeDfa
equiv = equivDfa
minimize = minimizeDfa
reverseFa = reverseDfa
deadstates = dfadeadstates
toHaskell' = toHaskell
toGraph = dfa2graphviz
toGraphIO = dfa2graphviz2file
unionFa = unionDfa
starFa = starDfa
concatFa = concatDfa
plusFa = plusDfa
instance (Show st , Show sy , Ord st , Ord sy) => Fa Ndfa st sy where
accept = ndfaaccept
sizeFa = sizeNdfa
equiv = equivNdfa
minimize = minimizeNdfa
reverseFa = reverseNdfa
deadstates = ndfadeadstates
toHaskell' = toHaskell
toGraph = ndfa2graphviz
toGraphIO = ndfa2graphviz2file
unionFa = unionNdfa
starFa = starNdfa
concatFa = concatNdfa
plusFa = plusNdfa