From 72a191a1440fcdc484700238e8be1384ccc56e06 Mon Sep 17 00:00:00 2001 From: adam Date: Sun, 15 Jan 2006 16:37:00 -0500 Subject: [PATCH] checkpoint darcs-hash:20060115213700-5007d-c923da6b8b48f32fba019a187869a5a90a949e02.gz --- src/edu/berkeley/sbp/Sequence.java | 3 +-- src/edu/berkeley/sbp/misc/MetaGrammar.java | 7 +++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/edu/berkeley/sbp/Sequence.java b/src/edu/berkeley/sbp/Sequence.java index 0283c2b..8995b5c 100644 --- a/src/edu/berkeley/sbp/Sequence.java +++ b/src/edu/berkeley/sbp/Sequence.java @@ -36,8 +36,7 @@ public abstract class Sequence extends Element implements Iterable { * @param e the elements to match * @param drops only elements of e whose corresponding boolean in drops is false will be included in the output tree **/ - public static Sequence rewritingSequence(Object tag, Element[] e, boolean[] drops, HashSet and, HashSet not) { - return new RewritingSequence(tag, e, drops, and, not); } + public static Sequence rewritingSequence(Object tag, Element[] e, boolean[] drops) { return new RewritingSequence(tag, e, drops, null, null); } //////////////////////////////////////////////////////////////////////////////// diff --git a/src/edu/berkeley/sbp/misc/MetaGrammar.java b/src/edu/berkeley/sbp/misc/MetaGrammar.java index 24d3a46..f628813 100644 --- a/src/edu/berkeley/sbp/misc/MetaGrammar.java +++ b/src/edu/berkeley/sbp/misc/MetaGrammar.java @@ -264,8 +264,11 @@ public class MetaGrammar extends StringWalker { for(Sequence s : not) ret = ret.not(s); } else if (unwrap) ret = new Sequence.Unwrap(expansion, drops, and, not); - else if (tag!=null) ret = Sequence.rewritingSequence(tag, expansion, drops, and, not); - else { + else if (tag!=null) { + ret = Sequence.rewritingSequence(tag, expansion, drops); + for(Sequence s : and) ret = ret.and(s); + for(Sequence s : not) ret = ret.not(s); + } else { int idx = -1; for(int i=0; i