我很久以前就看到了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一起发布。
发布于 2011-03-05 04:56:32
它是正则表达式到有限自动机转换的实现。NDFA创建http://www2.in.tum.de/hp/file?fid=571的一种方法的示例可以在http://www.scala-lang.org/api/current/scala/util/regexp/WordExp.html上找到,尽管这并没有展示如何使用产生的自动机。似乎可以通过重复调用"next“来使用自动机,以BitSet的形式通过线程设置状态,并每次使用containsFinal检查自动机是否已达到最终状态。我没有看到的是初始状态应该表示成什么,但看起来初始状态可能是一个空的BitSet。
发布于 2011-03-05 06:18:22
这是我开始学习Scala时发现的第一件事。在里面也发现了一些bug。它不是特别有用,甚至有一些关于弃用它的讨论。
它确实实现了一种相当灵活的算法,可以将正则表达式一直转换为DFA,但DFA本身并不是特别灵活。
https://stackoverflow.com/questions/5198662
复制相似问题