diff options
author | Burak Emir <emir@epfl.ch> | 2005-10-11 07:46:57 +0000 |
---|---|---|
committer | Burak Emir <emir@epfl.ch> | 2005-10-11 07:46:57 +0000 |
commit | 2214cdeaef620d9a97c1a20a349f2f966430002c (patch) | |
tree | b5075bc805a47f8246a4880e8169c0fae8ea0f21 | |
parent | 3632df227dcedb5f4b4dc84cbd0857ca5f194a7d (diff) | |
download | scala-2214cdeaef620d9a97c1a20a349f2f966430002c.tar.gz scala-2214cdeaef620d9a97c1a20a349f2f966430002c.tar.bz2 scala-2214cdeaef620d9a97c1a20a349f2f966430002c.zip |
fixes
-rw-r--r-- | sources/scala/util/automata/WordBerrySethi.scala | 13 |
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); } } |