diff options
author | buraq <buraq@epfl.ch> | 2003-08-27 16:12:59 +0000 |
---|---|---|
committer | buraq <buraq@epfl.ch> | 2003-08-27 16:12:59 +0000 |
commit | 3cda488d5a441597594d691279c28fea4f6ad4c5 (patch) | |
tree | d8026554836d4bdeb1eb28f6fc925264d7a03276 /sources | |
parent | 65981fc7122e9dbad2be5f28f8f3c6b9475838f0 (diff) | |
download | scala-3cda488d5a441597594d691279c28fea4f6ad4c5.tar.gz scala-3cda488d5a441597594d691279c28fea4f6ad4c5.tar.bz2 scala-3cda488d5a441597594d691279c28fea4f6ad4c5.zip |
code cleanup + fixed matching of empty sequence...
code cleanup + fixed matching of empty sequences with empty patterns
Diffstat (limited to 'sources')
5 files changed, 9 insertions, 2 deletions
diff --git a/sources/scalac/transformer/matching/Autom2Scala.java b/sources/scalac/transformer/matching/Autom2Scala.java index e90be90509..734ee8b59c 100644 --- a/sources/scalac/transformer/matching/Autom2Scala.java +++ b/sources/scalac/transformer/matching/Autom2Scala.java @@ -160,6 +160,7 @@ public class Autom2Scala { Symbol curSym; Symbol hasnSym; + // overridden in TracerInScala Tree loadCurrentElem( Tree body ) { return cf.Block( Position.FIRSTPOS, new Tree[] { cf.gen.ValDef( Position.FIRSTPOS, diff --git a/sources/scalac/transformer/matching/BerrySethi.java b/sources/scalac/transformer/matching/BerrySethi.java index 79d67a8db3..dd50fac722 100644 --- a/sources/scalac/transformer/matching/BerrySethi.java +++ b/sources/scalac/transformer/matching/BerrySethi.java @@ -583,6 +583,8 @@ class BerrySethi { collectTransitions(); + if( nullable( subexpr )) // initial state is final + finals.put( new Integer(0), finalTag ); //TreeSet initials = new TreeSet(); //initials.add( new Integer( 0 ) ); diff --git a/sources/scalac/transformer/matching/DetWordAutom.java b/sources/scalac/transformer/matching/DetWordAutom.java index 52023487c2..1f946f0b9c 100644 --- a/sources/scalac/transformer/matching/DetWordAutom.java +++ b/sources/scalac/transformer/matching/DetWordAutom.java @@ -252,7 +252,7 @@ public class DetWordAutom { } // <DEBUG> - // printBefore( states, deftrans ); + //printBefore( states, deftrans ); // </DEBUG> do not call printBefore after this point // //System.out.println("indexMap: "+indexMap); diff --git a/sources/scalac/transformer/matching/SequenceMatcher.java b/sources/scalac/transformer/matching/SequenceMatcher.java index 27386792c0..2151d95dd8 100644 --- a/sources/scalac/transformer/matching/SequenceMatcher.java +++ b/sources/scalac/transformer/matching/SequenceMatcher.java @@ -221,7 +221,7 @@ public class SequenceMatcher extends PatternTool { Tree[] body, Tree defaultCase, boolean doBinding ) { - + //System.err.println("SequenceMatcher::construct"); this.pat = pat; this.body = body; assert body.length == pat.length; @@ -249,6 +249,8 @@ public class SequenceMatcher extends PatternTool { (pat.length > 1) ? new NondetWordAutom( manyNfa ) : manyNfa[ 0 ]; + //nfa.print(); + DetWordAutom dfa = new DetWordAutom( nfa ); WordAutomInScala scalaAut = new WordAutomInScala( dfa, diff --git a/sources/scalac/transformer/matching/TracerInScala.java b/sources/scalac/transformer/matching/TracerInScala.java index c8a64ec788..7bcb631c2b 100644 --- a/sources/scalac/transformer/matching/TracerInScala.java +++ b/sources/scalac/transformer/matching/TracerInScala.java @@ -52,4 +52,6 @@ public class TracerInScala extends Autom2Scala { return gen.ValDef( realVar, hv); } + } + |