diff --git a/version1.0/ast.h b/version1.0/ast.h index d2f862b..ac12ba0 100644 --- a/version1.0/ast.h +++ b/version1.0/ast.h @@ -47,7 +47,6 @@ class abstract_syntax_tree var_list.clear(); else var_list=temp.var_list; - if(temp.var_changed_list.empty()) var_changed_list.clear(); else @@ -71,8 +70,21 @@ class abstract_syntax_tree children.clear(); else children=temp.children; + if(temp.var_list.empty()) + var_list.clear(); + else + var_list=temp.var_list; + if(temp.var_changed_list.empty()) + var_changed_list.clear(); + else + var_changed_list=temp.var_changed_list; + if(temp.var_content_list.empty()) + var_content_list.clear(); + else + var_content_list=temp.var_content_list; var_number=temp.var_number; var_string=temp.var_string; + id_name=temp.id_name; return *this; } void tree_set_clear() @@ -92,22 +104,24 @@ class abstract_syntax_tree std::cout<::iterator i=var_list.begin();i!=var_list.end();++i) i->print_ast_node(tab_num+1); std::cout<