Mercurial > octave
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,