diff options
author | buraq <buraq@epfl.ch> | 2003-07-05 17:57:07 +0000 |
---|---|---|
committer | buraq <buraq@epfl.ch> | 2003-07-05 17:57:07 +0000 |
commit | 1554123d308c751738e030403688ab179f72636b (patch) | |
tree | 5228b72102920cc99da172c4ef379b691b34fc21 /sources/scalac/transformer/matching/BerrySethi.java | |
parent | 4912b7dd537895020673d4c560cff5bd8ca579f6 (diff) | |
download | scala-1554123d308c751738e030403688ab179f72636b.tar.gz scala-1554123d308c751738e030403688ab179f72636b.tar.bz2 scala-1554123d308c751738e030403688ab179f72636b.zip |
*** empty log message ***
Diffstat (limited to 'sources/scalac/transformer/matching/BerrySethi.java')
-rw-r--r-- | sources/scalac/transformer/matching/BerrySethi.java | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/sources/scalac/transformer/matching/BerrySethi.java b/sources/scalac/transformer/matching/BerrySethi.java index 1d2bc1ec87..72b39ff106 100644 --- a/sources/scalac/transformer/matching/BerrySethi.java +++ b/sources/scalac/transformer/matching/BerrySethi.java @@ -48,9 +48,9 @@ class BerrySethi { case Apply(_, _): return false; case Sequence( Tree[] trees ): - return trees.length == 0; - case Subsequence( Tree[] trees ): - return nullable( trees ); + return (trees.length == 0) || nullable( trees ); + //case Subsequence( Tree[] trees ): + //return case Bind(Name n, Tree t): /* if( isStar( n ) ) // generated for star/plus(?) @@ -110,8 +110,8 @@ class BerrySethi { TreeSet tmp = new TreeSet(); tmp.add( (Integer) posMap.get( pat )); // singleton set return tmp; - case Subsequence( Tree[] trees ): - return compFirst( trees ); + //case Subsequence( Tree[] trees ): + //return compFirst( trees ); case Alternative( Tree[] trees ): TreeSet tmp = new TreeSet(); for( int i = 0; i < trees.length; i++ ) { @@ -149,8 +149,8 @@ class BerrySethi { TreeSet tmp = new TreeSet(); tmp.add( (Integer) posMap.get( pat )); // singleton set return tmp; - case Subsequence( Tree[] trees ): - return compLast( trees ); + //case Subsequence( Tree[] trees ): + //return compLast( trees ); case Alternative( Tree[] trees ): TreeSet tmp = new TreeSet(); for( int i = 0; i < trees.length; i++ ) { @@ -250,7 +250,7 @@ class BerrySethi { */ TreeSet compFollow1( TreeSet fol, Tree pat ) { switch( pat ) { - case Subsequence(Tree[] trees): + case Sequence(Tree[] trees): TreeSet first = null; int i = trees.length; if( i > 0 ) { // is nonempty @@ -265,6 +265,7 @@ class BerrySethi { } if( null == first ) first = new TreeSet(); return first; + case Alternative(Tree[] choices): TreeSet first = new TreeSet(); for( int i = choices.length - 1; i >= 0; --i ) { @@ -327,7 +328,6 @@ class BerrySethi { //System.out.println("Ident("+n+",...) follow:"+tset); return first; - case Sequence( _ ): case Apply(_, _): case Literal( _ ): case Typed(_,_): @@ -369,7 +369,6 @@ class BerrySethi { switch( pat ) { // (is tree automaton stuff, more than Berry-Sethi) - case Sequence( _ ): case Apply( _, _ ): case Typed( _, _ ): case Select( _, _ ): @@ -384,7 +383,7 @@ class BerrySethi { return ; - case Subsequence( Tree[] trees ): + case Sequence( Tree[] trees ): for( int i = 0; i < trees.length; i++ ) { traverse( trees[ i ] ); } @@ -553,8 +552,8 @@ class BerrySethi { */ //System.out.println( nullableSequence( pat )); // UNIT TEST switch( pat ) { - case Subsequence( Tree[] subexpr ): // NEW VERSION - return automatonFrom( new Tree.Sequence( subexpr ), finalTag ); // NEW VERSION + //case Subsequence( Tree[] subexpr ): // NEW VERSION + //return automatonFrom( new Tree.Sequence( subexpr ), finalTag ); // NEW VERSION case Sequence( Tree[] subexpr ): initialize( subexpr ); |