summaryrefslogtreecommitdiff
path: root/sources/scalac/transformer/matching/PatternMatcher.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/PatternMatcher.java
parent4912b7dd537895020673d4c560cff5bd8ca579f6 (diff)
downloadscala-1554123d308c751738e030403688ab179f72636b.tar.gz
scala-1554123d308c751738e030403688ab179f72636b.tar.bz2
scala-1554123d308c751738e030403688ab179f72636b.zip
*** empty log message ***
Diffstat (limited to 'sources/scalac/transformer/matching/PatternMatcher.java')
-rw-r--r--sources/scalac/transformer/matching/PatternMatcher.java10
1 files changed, 7 insertions, 3 deletions
diff --git a/sources/scalac/transformer/matching/PatternMatcher.java b/sources/scalac/transformer/matching/PatternMatcher.java
index 784a96377b..bebab020f8 100644
--- a/sources/scalac/transformer/matching/PatternMatcher.java
+++ b/sources/scalac/transformer/matching/PatternMatcher.java
@@ -301,6 +301,8 @@ public class PatternMatcher extends PatternTool {
}
return args;
case Sequence(Tree[] ts):
+ //if( TestRegTraverser.apply( tree ) )
+ // return Tree.EMPTY_ARRAY; // let sequence matcher handle it
return ts;
default:
return Tree.EMPTY_ARRAY;
@@ -382,8 +384,6 @@ public class PatternMatcher extends PatternTool {
return mk.ConstantPat(tree.pos, getConstrType(tree.type), value);
case Sequence(Tree[] ts):
return mk.SequencePat(tree.pos, tree.type, ts.length, tree);
- case Subsequence(Tree[] ts):
- return mk.SequencePat(tree.pos, tree.type, ts.length, tree);
case Alternative(Tree[] ts): // CAN THIS WORK ?
assert ts.length > 0;
PatternNode res = patternNode( ts[ 0 ], header, env );
@@ -687,6 +687,8 @@ public class PatternMatcher extends PatternTool {
toTree(node.and)}, defs.BOOLEAN_TYPE),
toTree(node.or, selector.duplicate())).setType(defs.BOOLEAN_TYPE);
case SequencePat(Symbol casted, int len, Tree tree):
+ //return callSequenceMatcher( node, selector );
+
if( TestRegTraverser.apply( tree ) )
{
//System.err.println("calling sequence matcher");
@@ -766,12 +768,14 @@ public class PatternMatcher extends PatternTool {
defaultNode = node;
}
} while (defaultNode == null) ;
-
+ System.out.println("collectSeqPats(1):"+seqPatNodes);
+ System.out.println("collectSeqPats(2):"+bodies);
return defaultNode;
}
Tree callSequenceMatcher( PatternNode node,
Tree selector) {
+ System.out.println("callSequenceMatcher("+node+","+selector+")");
/* ???????????????????????? necessary to test whether is a Seq?
make.If(selector.pos,