Mercurial > octave
diff libinterp/parse-tree/pt-args-block.h @ 29863:c29cfcf7a941
provide default definitions for more tree_walker methods
For parse tree elements that are primarily containers of other
elements, provide default methods that iterate over their contents.
* pt-walk.cc (tree_walker::visit_anon_fcn_handle,
tree_walker::visit_arguments_block,
tree_walker::visit_args_block_attribute_list,
tree_walker::visit_args_block_validation_list,
tree_walker::visit_arg_validation,
tree_walker::visit_arg_size_spec,
tree_walker::visit_arg_validation_fcns,
tree_walker::visit_classdef_attribute,
tree_walker::visit_classdef_attribute_list,
tree_walker::visit_classdef_superclass_list,
tree_walker::visit_classdef_property_list,
tree_walker::visit_classdef_properties_block,
tree_walker::visit_classdef_methods_list,
tree_walker::visit_classdef_methods_block,
tree_walker::visit_classdef_events_list,
tree_walker::visit_classdef_events_block,
tree_walker::visit_classdef_enum_list,
tree_walker::visit_classdef_enum_block,
tree_walker::visit_classdef_body, tree_walker::visit_classdef):
Call accept for all sub-elements.
* pt-args-block.h (tree_args_block_attribute_list::attribute,
tree_arg_size_spec::size_args, tree_arg_validation_fcns::fcn_args,
tree_arguments_block::attribute_list,
tree_arguments_block::validation_list): New functions.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Fri, 09 Jul 2021 04:03:36 -0400 |
parents | d0ce7260978d |
children | 796f54d4ddbf |
line wrap: on
line diff
--- a/libinterp/parse-tree/pt-args-block.h Fri Jul 09 04:05:13 2021 -0400 +++ b/libinterp/parse-tree/pt-args-block.h Fri Jul 09 04:03:36 2021 -0400 @@ -60,6 +60,8 @@ delete m_size_args; } + tree_argument_list * size_args (void) { return m_size_args; } + void accept (tree_walker& tw) { tw.visit_arg_size_spec (*this); @@ -89,6 +91,8 @@ delete m_fcn_args; } + tree_argument_list * fcn_args (void) { return m_fcn_args; } + void accept (tree_walker& tw) { tw.visit_arg_validation_fcns (*this); @@ -160,7 +164,8 @@ tree_expression *m_default_value; }; - class tree_args_block_validation_list : public base_list<tree_arg_validation *> + class tree_args_block_validation_list + : public base_list<tree_arg_validation *> { public: @@ -193,8 +198,8 @@ { public: - tree_args_block_attribute_list (tree_identifier *id = nullptr) - : m_id (id) + tree_args_block_attribute_list (tree_identifier *attr = nullptr) + : m_attr (attr) { } // No copying! @@ -205,9 +210,11 @@ ~tree_args_block_attribute_list (void) { - delete m_id; + delete m_attr; } + tree_identifier * attribute (void) { return m_attr; } + void accept (tree_walker& tw) { tw.visit_args_block_attribute_list (*this); @@ -215,7 +222,7 @@ private: - tree_identifier *m_id; + tree_identifier *m_attr; }; // Arguments block. @@ -247,6 +254,16 @@ delete m_trail_comm; } + tree_args_block_attribute_list * attribute_list (void) + { + return m_attr_list; + } + + tree_args_block_validation_list * validation_list (void) + { + return m_validation_list; + } + comment_list * leading_comment (void) { return m_lead_comm; } comment_list * trailing_comment (void) { return m_trail_comm; }