Mercurial > hg > octave-lyh
diff src/pt-decl.cc @ 5861:2a6cb4ed8f1e
[project @ 2006-06-16 05:09:41 by jwe]
author | jwe |
---|---|
date | Fri, 16 Jun 2006 05:09:42 +0000 |
parents | 4c8a2e4e0717 |
children | 516d3071b34c |
line wrap: on
line diff
--- a/src/pt-decl.cc +++ b/src/pt-decl.cc @@ -45,6 +45,13 @@ delete expr; } +tree_decl_elt * +tree_decl_elt::dup (symbol_table *sym_tab) +{ + return new tree_decl_elt (id ? id->dup (sym_tab) : 0, + expr ? expr->dup (sym_tab) : 0); +} + void tree_decl_elt::accept (tree_walker& tw) { @@ -67,6 +74,21 @@ } } +tree_decl_init_list * +tree_decl_init_list::dup (symbol_table *sym_tab) +{ + tree_decl_init_list *new_dil = new tree_decl_init_list (); + + for (iterator p = begin (); p != end (); p++) + { + tree_decl_elt *elt = *p; + + new_dil->append (elt ? elt->dup (sym_tab) : 0); + } + + return new_dil; +} + void tree_decl_init_list::accept (tree_walker& tw) { @@ -133,6 +155,13 @@ line (), column ()); } +tree_command * +tree_global_command::dup (symbol_table *sym_tab) +{ + return new tree_global_command (init_list ? init_list->dup (sym_tab) : 0, + line (), column ()); +} + // Static. void @@ -179,6 +208,13 @@ } } +tree_command * +tree_static_command::dup (symbol_table *sym_tab) +{ + return new tree_static_command (init_list ? init_list->dup (sym_tab) : 0, + line (), column ()); +} + /* ;;; Local Variables: *** ;;; mode: C++ ***