[英]What's the purpose of the Scala package scala.util.automata?
很久以前我看到了scala.util.automata
軟件包,最近在閱讀一些ScalaDoc時就摔倒了。
有沒有人在任何地方看到這個包用於什么目的?
我想知道這些類是否與解析器組合器有一些連接,或者它們是否是獨立使用的?
這些類的名稱如
class BaseBerrySethi
class DetWordAutom[T <: AnyRef]
trait Inclusion[A <: AnyRef]
class NondetWordAutom[T <: AnyRef]
class SubsetConstruction[T <: AnyRef]
class WordBerrySethi extends BaseBerrySethi
和一個不是很有幫助的描述。
看起來他們將與Scala 2.9一起發貨。
它是有限自動機轉換的正則表達式的實現。 http://www2.in.tum.de/hp/file?fid=571 [PDF]有關創建NDFA的一種方法的示例, 請訪問http://www.scala-lang.org/api/current /scala/util/regexp/WordExp.html ,雖然沒有說明如何使用生成的自動機。 看起來自動機將通過重復調用“next”來使用,以BitSet的形式處理狀態集並通過containsFinal檢查每次以查看自動機是否已達到最終狀態。 我沒看到的是初始狀態應該表示為什么,但似乎初始狀態可能是一個空的BitSet。
這是我開始學習Scala時遇到的第一件事。 也發現了一些錯誤。 它並不是特別有用,甚至還有一些關於棄用它的討論。
它確實實現了一種相當靈活的算法,將正則表達式一直轉換為DFA,但DFA本身並不是特別靈活,iirc。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.