summaryrefslogtreecommitdiff
path: root/sources/scalac/transformer/matching/BerrySethi.java
diff options
context:
space:
mode:
authorburaq <buraq@epfl.ch>2003-07-05 17:57:07 +0000
committerburaq <buraq@epfl.ch>2003-07-05 17:57:07 +0000
commit1554123d308c751738e030403688ab179f72636b (patch)
tree5228b72102920cc99da172c4ef379b691b34fc21 /sources/scalac/transformer/matching/BerrySethi.java
parent4912b7dd537895020673d4c560cff5bd8ca579f6 (diff)
downloadscala-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.java25
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 );