diff libinterp/parse-tree/pt-eval.h @ 23469:2699c5974844

handle global and persistent in tree_decl_command, not as separate classes * pt-decl.h, pt-decl.cc (tree_decl_command::mark_as_global, tree_decl_command::mark_as_persistent, tree_decl_command::dup): New functions. (tree_global_command, tree_persistent_command): Delete classes. (tree_decl_elt::decl_type): New enum. Store command type in each initializer list element. (tree_decl_elt::mark_as_global, tree_decl_elt::is_global, tree_decl_elt::mark_as_persistent, tree_decl_elt::is_persistent): New functions. (tree_decl_init_list::mark_as_global, tree_decl_init_list::is_global, tree_decl_init_list::mark_as_persistent, tree_decl_init_list::is_persistent): New functions. * pt-walk.h (tree_walker::visit_decl_command): New function. (tree_walker::visit_global_command, tree_walker::visit_persistent_command): Delete. Update all derived classes. * oct-parse.in.yy (base_parser::make_decl_command): Tag initialization lists as global or persistent here. * pt-eval.cc (tree_evaluator::visit_decl_command): New function. Visit initialization list instead of looping here. (tree_evaluator::visit_decl_init_list): Loop and visit elements here. (tree_evaluator::visit_decl_elt): Handle evaluation of elements here.
author John W. Eaton <jwe@octave.org>
date Thu, 04 May 2017 15:02:46 -0400
parents 0f4ed33886de
children 73558a835b64
line wrap: on
line diff
--- a/libinterp/parse-tree/pt-eval.h	Thu May 04 10:29:51 2017 -0400
+++ b/libinterp/parse-tree/pt-eval.h	Thu May 04 15:02:46 2017 -0400
@@ -118,14 +118,12 @@
 
     void visit_continue_command (tree_continue_command&);
 
-    void visit_global_command (tree_global_command&);
+    void visit_decl_command (tree_decl_command&);
 
-    void visit_persistent_command (tree_persistent_command&);
+    void visit_decl_init_list (tree_decl_init_list&);
 
     void visit_decl_elt (tree_decl_elt&);
 
-    void visit_decl_init_list (tree_decl_init_list&);
-
     void visit_simple_for_command (tree_simple_for_command&);
 
     void visit_complex_for_command (tree_complex_for_command&);
@@ -281,10 +279,6 @@
 
   private:
 
-    void do_global_init (octave::tree_decl_elt& elt);
-
-    void do_static_init (octave::tree_decl_elt& elt);
-
     void do_breakpoint (tree_statement& stmt) const;
 
     void do_breakpoint (bool is_breakpoint,