implemented filter on markup-tree
authorimmler@in.tum.de
Fri, 22 May 2009 13:43:34 +0200
changeset 34559 2adb23c3e5d1
parent 34558 668fae39d86d
child 34560 08f0d81c6833
implemented filter on markup-tree
src/Tools/jEdit/src/prover/MarkupNode.scala
--- a/src/Tools/jEdit/src/prover/MarkupNode.scala	Fri May 22 13:43:34 2009 +0200
+++ b/src/Tools/jEdit/src/prover/MarkupNode.scala	Fri May 22 13:43:34 2009 +0200
@@ -87,6 +87,12 @@
     }
   }
 
+  def filter(p: (MarkupNode => Boolean)): List[MarkupNode] = {
+    val filtered = children.flatMap(_.filter(p))
+    if (p(this)) List(this set_children(filtered))
+    else filtered
+  }
+
   def +(new_child : MarkupNode) : MarkupNode = {
     if (new_child fitting_into this) {
       val new_children = children.map(c => if((new_child fitting_into c)) c + new_child else c)