summaryrefslogtreecommitdiff
path: root/sources/scalac/transformer/matching
diff options
context:
space:
mode:
authorburaq <buraq@epfl.ch>2003-08-27 16:12:59 +0000
committerburaq <buraq@epfl.ch>2003-08-27 16:12:59 +0000
commit3cda488d5a441597594d691279c28fea4f6ad4c5 (patch)
treed8026554836d4bdeb1eb28f6fc925264d7a03276 /sources/scalac/transformer/matching
parent65981fc7122e9dbad2be5f28f8f3c6b9475838f0 (diff)
downloadscala-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/scalac/transformer/matching')
-rw-r--r--sources/scalac/transformer/matching/Autom2Scala.java1
-rw-r--r--sources/scalac/transformer/matching/BerrySethi.java2
-rw-r--r--sources/scalac/transformer/matching/DetWordAutom.java2
-rw-r--r--sources/scalac/transformer/matching/SequenceMatcher.java4
-rw-r--r--sources/scalac/transformer/matching/TracerInScala.java2
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);
}
+
}
+