summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBurak Emir <emir@epfl.ch>2005-10-11 07:46:57 +0000
committerBurak Emir <emir@epfl.ch>2005-10-11 07:46:57 +0000
commit2214cdeaef620d9a97c1a20a349f2f966430002c (patch)
treeb5075bc805a47f8246a4880e8169c0fae8ea0f21
parent3632df227dcedb5f4b4dc84cbd0857ca5f194a7d (diff)
downloadscala-2214cdeaef620d9a97c1a20a349f2f966430002c.tar.gz
scala-2214cdeaef620d9a97c1a20a349f2f966430002c.tar.bz2
scala-2214cdeaef620d9a97c1a20a349f2f966430002c.zip
fixes
-rw-r--r--sources/scala/util/automata/WordBerrySethi.scala13
1 files changed, 9 insertions, 4 deletions
diff --git a/sources/scala/util/automata/WordBerrySethi.scala b/sources/scala/util/automata/WordBerrySethi.scala
index ba0b3f8f7c..f361b6b174 100644
--- a/sources/scala/util/automata/WordBerrySethi.scala
+++ b/sources/scala/util/automata/WordBerrySethi.scala
@@ -37,13 +37,15 @@ abstract class WordBerrySethi extends BaseBerrySethi {
/** computes first( r ) where the word regexp r */
protected override def compFirst(r: RegExp): immutable.Set[Int] = r match {
case x:Letter => emptySet + x.pos ;//posMap(x); // singleton set
- case _ => super.compFirst(r);
+ case Eps => emptySet /*ignore*/
+ case _ => super.compFirst(r);
}
/** computes last( r ) where the word regexp r */
protected override def compLast(r: RegExp): immutable.Set[Int] = r match {
case x:Letter => emptySet + x.pos; //posMap(x) // singleton set
- case _ => super.compLast(r)
+ case Eps => emptySet /*ignore*/
+ case _ => super.compLast(r)
}
/** returns the first set of an expression, setting the follow set along
@@ -58,6 +60,8 @@ abstract class WordBerrySethi extends BaseBerrySethi {
this.follow.update( i, fol1 );
emptySet + i;
+ case Eps => emptySet /*ignore*/
+
case _ => super.compFollow1(fol1, r)
}
@@ -89,7 +93,8 @@ abstract class WordBerrySethi extends BaseBerrySethi {
// todo: replace global variable pos with acc
override def traverse(r: RegExp): Unit = r match {
case a @ Letter( label ) => a.pos = seenLabel( r, label ) ;
- case _ => super.traverse(r)
+ case Eps => /*ignore*/
+ case _ => super.traverse(r)
}
@@ -237,7 +242,7 @@ abstract class WordBerrySethi extends BaseBerrySethi {
val delta = deltaArr;
val default = defaultArr;
}
- case _ => error("expected Sequ");
+ case z:this.lang._regexpT => automatonFrom(Sequ(z), finalTag);
}
}