]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/DEVEL/mathml_editor/src/TNode.cc
ocaml 3.09 transition
[helm.git] / helm / DEVEL / mathml_editor / src / TNode.cc
index 4235f3728f4d449e8cb8c4e9a3bce74b64f8cf1d..3c67d9d60076cefefb74e9618b805509fbe2fa21 100644 (file)
@@ -1,6 +1,31 @@
+/* This file is part of EdiTeX, an editor of mathematical
+ * expressions based on TeX syntax.
+ * 
+ * Copyright (C) 2002-2003 Luca Padovani <lpadovan@cs.unibo.it>,
+ *                    2003 Paolo Marinelli <pmarinel@cs.unibo.it>.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * For more information, please visit the project's home page
+ * http://helm.cs.unibo.it/editex/
+ * or send an email to <lpadovan@cs.unibo.it>
+ */
 
 #include "globals.hh"
 #include "TNode.hh"
+#include <cassert>
 
 TNode
 TNode::next() const
@@ -129,6 +154,22 @@ TNode::replace(const TNode& newNode) const
   parent.replaceChild(newNode.node, node);
 }
 
+void
+TNode::replace(const TNode& first, const TNode& last) const
+{
+  assert(node);
+  assert(first);
+
+  TNode p = first;
+  while (p != last)
+    {
+      TNode next = p.next();
+      insert(p);
+      p = next;
+    }
+  remove();
+}
+
 void
 TNode::insert(const TNode& newNode) const
 {