Mercurial > hg > octave-lyh
diff src/pt-stmt.cc @ 5861:2a6cb4ed8f1e
[project @ 2006-06-16 05:09:41 by jwe]
author | jwe |
---|---|
date | Fri, 16 Jun 2006 05:09:42 +0000 |
parents | 6bd94066d360 |
children | f1676652d808 |
line wrap: on
line diff
--- a/src/pt-stmt.cc +++ b/src/pt-stmt.cc @@ -143,6 +143,22 @@ return retval; } +tree_statement * +tree_statement::dup (symbol_table *sym_tab) +{ + tree_statement *new_stmt = new tree_statement (); + + new_stmt->cmd = cmd ? cmd->dup (sym_tab) : 0; + + new_stmt->expr = expr ? expr->dup (sym_tab) : 0; + + new_stmt->comm = comm ? comm->dup () : 0; + + new_stmt->print_flag = print_flag; + + return new_stmt; +} + void tree_statement::accept (tree_walker& tw) { @@ -251,6 +267,23 @@ return tbp.get_list (); } +tree_statement_list * +tree_statement_list::dup (symbol_table *sym_tab) +{ + tree_statement_list *new_list = new tree_statement_list (); + + new_list->function_body = function_body; + + for (iterator p = begin (); p != end (); p++) + { + tree_statement *elt = *p; + + new_list->append (elt ? elt->dup (sym_tab) : 0); + } + + return new_list; +} + void tree_statement_list::accept (tree_walker& tw) {