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; }