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/PatternMatcher.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/PatternMatcher.java')
-rw-r--r-- | sources/scalac/transformer/matching/PatternMatcher.java | 10 |
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, |