Mercurial > octave
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) {