diff src/pt-select.cc @ 5861:2a6cb4ed8f1e

[project @ 2006-06-16 05:09:41 by jwe]
author jwe
date Fri, 16 Jun 2006 05:09:42 +0000
parents ace8d8d26933
children 93c65f2a5668
line wrap: on
line diff
--- a/src/pt-select.cc	Fri Jun 16 05:01:39 2006 +0000
+++ b/src/pt-select.cc	Fri Jun 16 05:09:42 2006 +0000
@@ -59,6 +59,14 @@
   return 0;
 }
 
+tree_if_clause *
+tree_if_clause::dup (symbol_table *sym_tab)
+{
+  return new tree_if_clause (expr ? expr->dup (sym_tab) : 0,
+			     list ? list->dup (sym_tab) : 0,
+			     lead_comm ? lead_comm->dup () : 0);
+}
+
 void
 tree_if_clause::accept (tree_walker& tw)
 {
@@ -79,6 +87,21 @@
     }
 }
 
+tree_if_command_list *
+tree_if_command_list::dup (symbol_table *sym_tab)
+{
+  tree_if_command_list *new_icl = new tree_if_command_list ();
+
+  for (iterator p = begin (); p != end (); p++)
+    {
+      tree_if_clause *elt = *p;
+
+      new_icl->append (elt ? elt->dup (sym_tab) : 0);
+    }
+
+  return new_icl;
+}
+
 void
 tree_if_command_list::accept (tree_walker& tw)
 {
@@ -105,6 +128,15 @@
 	     line (), column ());
 }
 
+tree_command *
+tree_if_command::dup (symbol_table *sym_tab)
+{
+  return new tree_if_command (list ? list->dup (sym_tab) : 0,
+			      lead_comm ? lead_comm->dup () : 0,
+			      trail_comm ? trail_comm->dup () : 0,
+			      line (), column ());
+}
+
 void
 tree_if_command::accept (tree_walker& tw)
 {
@@ -210,6 +242,14 @@
   ::error ("evaluating switch case label");
 }
 
+tree_switch_case *
+tree_switch_case::dup (symbol_table *sym_tab)
+{
+  return new tree_switch_case (label ? label->dup (sym_tab) : 0,
+			       list ? list->dup (sym_tab) : 0,
+			       lead_comm ? lead_comm->dup () : 0);
+}
+
 void
 tree_switch_case::accept (tree_walker& tw)
 {
@@ -230,6 +270,21 @@
     }
 }
 
+tree_switch_case_list *
+tree_switch_case_list::dup (symbol_table *sym_tab)
+{
+  tree_switch_case_list *new_scl = new tree_switch_case_list ();
+
+  for (iterator p = begin (); p != end (); p++)
+    {
+      tree_switch_case *elt = *p;
+
+      new_scl->append (elt ? elt->dup (sym_tab) : 0);
+    }
+  
+  return new_scl;
+}
+
 void
 tree_switch_case_list::accept (tree_walker& tw)
 {
@@ -276,6 +331,16 @@
 	   line (), column ());
 }
 
+tree_command *
+tree_switch_command::dup (symbol_table *sym_tab)
+{
+  return new tree_switch_command (expr ? expr->dup (sym_tab) : 0,
+				  list ? list->dup (sym_tab) : 0,
+				  lead_comm ? lead_comm->dup () : 0,
+				  trail_comm ? trail_comm->dup () : 0,
+				  line (), column ());
+}
+
 void
 tree_switch_command::accept (tree_walker& tw)
 {