annotate 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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
29724
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
1 ////////////////////////////////////////////////////////////////////////
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
2 //
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
3 // Copyright (C) 2021 The Octave Project Developers
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
4 //
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
5 // See the file COPYRIGHT.md in the top-level directory of this
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
6 // distribution or <https://octave.org/copyright/>.
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
7 //
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
8 // This file is part of Octave.
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
9 //
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
10 // Octave is free software: you can redistribute it and/or modify it
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
11 // under the terms of the GNU General Public License as published by
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
12 // the Free Software Foundation, either version 3 of the License, or
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
13 // (at your option) any later version.
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
14 //
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
15 // Octave is distributed in the hope that it will be useful, but
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
16 // WITHOUT ANY WARRANTY; without even the implied warranty of
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
18 // GNU General Public License for more details.
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
19 //
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
20 // You should have received a copy of the GNU General Public License
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
21 // along with Octave; see the file COPYING. If not, see
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
22 // <https://www.gnu.org/licenses/>.
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
23 //
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
24 ////////////////////////////////////////////////////////////////////////
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
25
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
26 #if ! defined (octave_pt_args_block_h)
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
27 #define octave_pt_args_block_h 1
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
28
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
29 #include "octave-config.h"
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
30
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
31 #include "pt-arg-list.h"
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
32 #include "pt-cmd.h"
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
33 #include "pt-exp.h"
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
34 #include "pt-id.h"
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
35 #include "pt-walk.h"
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
36
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
37 #include "base-list.h"
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
38
29729
d0ce7260978d also accept validation syntax for classdef properties
John W. Eaton <jwe@octave.org>
parents: 29724
diff changeset
39 // FIXME: We could maybe re-think the naming of some of these objects
d0ce7260978d also accept validation syntax for classdef properties
John W. Eaton <jwe@octave.org>
parents: 29724
diff changeset
40 // before releasing a version that contains these new classes...
d0ce7260978d also accept validation syntax for classdef properties
John W. Eaton <jwe@octave.org>
parents: 29724
diff changeset
41
29724
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
42 namespace octave
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
43 {
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
44 class tree_arg_size_spec
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
45 {
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
46 public:
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
47
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
48 tree_arg_size_spec (tree_argument_list *size_args)
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
49 : m_size_args (size_args)
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
50 { }
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
51
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
52 // No copying!
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
53
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
54 tree_arg_size_spec (const tree_arg_size_spec&) = delete;
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
55
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
56 tree_arg_size_spec& operator = (const tree_arg_size_spec&) = delete;
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
57
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
58 ~tree_arg_size_spec (void)
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
59 {
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
60 delete m_size_args;
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
61 }
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
62
29863
c29cfcf7a941 provide default definitions for more tree_walker methods
John W. Eaton <jwe@octave.org>
parents: 29729
diff changeset
63 tree_argument_list * size_args (void) { return m_size_args; }
c29cfcf7a941 provide default definitions for more tree_walker methods
John W. Eaton <jwe@octave.org>
parents: 29729
diff changeset
64
29724
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
65 void accept (tree_walker& tw)
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
66 {
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
67 tw.visit_arg_size_spec (*this);
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
68 }
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
69
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
70 private:
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
71
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
72 tree_argument_list *m_size_args;
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
73 };
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
74
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
75 class tree_arg_validation_fcns
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
76 {
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
77 public:
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
78
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
79 tree_arg_validation_fcns (tree_argument_list *fcn_args)
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
80 : m_fcn_args (fcn_args)
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
81 { }
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
82
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
83 // No copying!
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
84
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
85 tree_arg_validation_fcns (const tree_arg_validation_fcns&) = delete;
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
86
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
87 tree_arg_validation_fcns& operator = (const tree_arg_validation_fcns&) = delete;
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
88
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
89 ~tree_arg_validation_fcns (void)
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
90 {
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
91 delete m_fcn_args;
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
92 }
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
93
29863
c29cfcf7a941 provide default definitions for more tree_walker methods
John W. Eaton <jwe@octave.org>
parents: 29729
diff changeset
94 tree_argument_list * fcn_args (void) { return m_fcn_args; }
c29cfcf7a941 provide default definitions for more tree_walker methods
John W. Eaton <jwe@octave.org>
parents: 29729
diff changeset
95
29724
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
96 void accept (tree_walker& tw)
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
97 {
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
98 tw.visit_arg_validation_fcns (*this);
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
99 }
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
100
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
101 private:
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
102
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
103 tree_argument_list *m_fcn_args;
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
104 };
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
105
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
106 class tree_arg_validation
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
107 {
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
108 public:
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
109
29729
d0ce7260978d also accept validation syntax for classdef properties
John W. Eaton <jwe@octave.org>
parents: 29724
diff changeset
110 tree_arg_validation (tree_arg_size_spec *size_spec,
29724
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
111 tree_identifier *class_name,
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
112 tree_arg_validation_fcns *validation_fcns,
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
113 tree_expression *default_value)
29729
d0ce7260978d also accept validation syntax for classdef properties
John W. Eaton <jwe@octave.org>
parents: 29724
diff changeset
114 : m_arg_name (nullptr), m_size_spec (size_spec),
29724
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
115 m_class_name (class_name), m_validation_fcns (validation_fcns),
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
116 m_default_value (default_value)
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
117 { }
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
118
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
119 // No copying!
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
120
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
121 tree_arg_validation (const tree_arg_validation&) = delete;
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
122
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
123 tree_arg_validation& operator = (const tree_arg_validation&) = delete;
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
124
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
125 ~tree_arg_validation (void)
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
126 {
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
127 delete m_arg_name;
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
128 delete m_size_spec;
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
129 delete m_class_name;
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
130 delete m_validation_fcns;
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
131 delete m_default_value;
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
132 }
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
133
29729
d0ce7260978d also accept validation syntax for classdef properties
John W. Eaton <jwe@octave.org>
parents: 29724
diff changeset
134 void arg_name (tree_expression *name)
d0ce7260978d also accept validation syntax for classdef properties
John W. Eaton <jwe@octave.org>
parents: 29724
diff changeset
135 {
d0ce7260978d also accept validation syntax for classdef properties
John W. Eaton <jwe@octave.org>
parents: 29724
diff changeset
136 m_arg_name = name;
d0ce7260978d also accept validation syntax for classdef properties
John W. Eaton <jwe@octave.org>
parents: 29724
diff changeset
137 }
d0ce7260978d also accept validation syntax for classdef properties
John W. Eaton <jwe@octave.org>
parents: 29724
diff changeset
138
d0ce7260978d also accept validation syntax for classdef properties
John W. Eaton <jwe@octave.org>
parents: 29724
diff changeset
139 tree_expression * identifier_expression (void) { return m_arg_name; }
d0ce7260978d also accept validation syntax for classdef properties
John W. Eaton <jwe@octave.org>
parents: 29724
diff changeset
140
d0ce7260978d also accept validation syntax for classdef properties
John W. Eaton <jwe@octave.org>
parents: 29724
diff changeset
141 tree_arg_size_spec * size_spec (void) { return m_size_spec; }
d0ce7260978d also accept validation syntax for classdef properties
John W. Eaton <jwe@octave.org>
parents: 29724
diff changeset
142
d0ce7260978d also accept validation syntax for classdef properties
John W. Eaton <jwe@octave.org>
parents: 29724
diff changeset
143 tree_identifier * class_name (void) { return m_class_name; }
d0ce7260978d also accept validation syntax for classdef properties
John W. Eaton <jwe@octave.org>
parents: 29724
diff changeset
144
d0ce7260978d also accept validation syntax for classdef properties
John W. Eaton <jwe@octave.org>
parents: 29724
diff changeset
145 tree_arg_validation_fcns *
d0ce7260978d also accept validation syntax for classdef properties
John W. Eaton <jwe@octave.org>
parents: 29724
diff changeset
146 validation_fcns (void) { return m_validation_fcns; }
d0ce7260978d also accept validation syntax for classdef properties
John W. Eaton <jwe@octave.org>
parents: 29724
diff changeset
147
d0ce7260978d also accept validation syntax for classdef properties
John W. Eaton <jwe@octave.org>
parents: 29724
diff changeset
148 tree_expression *
d0ce7260978d also accept validation syntax for classdef properties
John W. Eaton <jwe@octave.org>
parents: 29724
diff changeset
149 initializer_expression (void) { return m_default_value; }
d0ce7260978d also accept validation syntax for classdef properties
John W. Eaton <jwe@octave.org>
parents: 29724
diff changeset
150
29724
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
151 void accept (tree_walker& tw)
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
152 {
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
153 tw.visit_arg_validation (*this);
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
154 }
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
155
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
156 private:
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
157
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
158 // May be a simple identifier or an identifier followed by a single
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
159 // field name.
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
160 tree_expression *m_arg_name;
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
161 tree_arg_size_spec *m_size_spec;
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
162 tree_identifier *m_class_name;
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
163 tree_arg_validation_fcns *m_validation_fcns;
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
164 tree_expression *m_default_value;
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
165 };
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
166
29863
c29cfcf7a941 provide default definitions for more tree_walker methods
John W. Eaton <jwe@octave.org>
parents: 29729
diff changeset
167 class tree_args_block_validation_list
c29cfcf7a941 provide default definitions for more tree_walker methods
John W. Eaton <jwe@octave.org>
parents: 29729
diff changeset
168 : public base_list<tree_arg_validation *>
29724
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
169 {
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
170 public:
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
171
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
172 tree_args_block_validation_list (void) { }
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
173
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
174 tree_args_block_validation_list (tree_arg_validation *a) { append (a); }
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
175
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
176 tree_args_block_validation_list (const base_list<tree_arg_validation *>& a)
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
177 : base_list<tree_arg_validation *> (a)
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
178 { }
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
179
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
180 // No copying!
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
181
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
182 tree_args_block_validation_list (const tree_args_block_validation_list&) = delete;
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
183
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
184 tree_args_block_validation_list& operator = (const tree_args_block_validation_list&) = delete;
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
185
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
186 ~tree_args_block_validation_list (void);
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
187
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
188 void accept (tree_walker& tw)
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
189 {
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
190 tw.visit_args_block_validation_list (*this);
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
191 }
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
192 };
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
193
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
194 // FIXME: Maybe make this object an actual list even though we don't
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
195 // currently need it?
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
196
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
197 class tree_args_block_attribute_list
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
198 {
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
199 public:
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
200
29863
c29cfcf7a941 provide default definitions for more tree_walker methods
John W. Eaton <jwe@octave.org>
parents: 29729
diff changeset
201 tree_args_block_attribute_list (tree_identifier *attr = nullptr)
c29cfcf7a941 provide default definitions for more tree_walker methods
John W. Eaton <jwe@octave.org>
parents: 29729
diff changeset
202 : m_attr (attr)
29724
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
203 { }
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
204
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
205 // No copying!
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
206
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
207 tree_args_block_attribute_list (const tree_args_block_attribute_list&) = delete;
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
208
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
209 tree_args_block_attribute_list& operator = (const tree_args_block_attribute_list&) = delete;
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
210
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
211 ~tree_args_block_attribute_list (void)
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
212 {
29863
c29cfcf7a941 provide default definitions for more tree_walker methods
John W. Eaton <jwe@octave.org>
parents: 29729
diff changeset
213 delete m_attr;
29724
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
214 }
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
215
29863
c29cfcf7a941 provide default definitions for more tree_walker methods
John W. Eaton <jwe@octave.org>
parents: 29729
diff changeset
216 tree_identifier * attribute (void) { return m_attr; }
c29cfcf7a941 provide default definitions for more tree_walker methods
John W. Eaton <jwe@octave.org>
parents: 29729
diff changeset
217
29724
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
218 void accept (tree_walker& tw)
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
219 {
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
220 tw.visit_args_block_attribute_list (*this);
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
221 }
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
222
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
223 private:
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
224
29863
c29cfcf7a941 provide default definitions for more tree_walker methods
John W. Eaton <jwe@octave.org>
parents: 29729
diff changeset
225 tree_identifier *m_attr;
29724
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
226 };
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
227
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
228 // Arguments block.
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
229
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
230 class tree_arguments_block : public tree_command
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
231 {
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
232 public:
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
233
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
234 tree_arguments_block (tree_args_block_attribute_list *attr_list,
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
235 tree_args_block_validation_list *validation_list,
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
236 int l = -1, int c = -1)
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
237 : tree_command (l, c), m_attr_list (attr_list),
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
238 m_validation_list (validation_list),
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
239 m_lead_comm (nullptr), m_trail_comm (nullptr)
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
240 { }
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
241
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
242 // No copying!
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
243
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
244 tree_arguments_block (const tree_arguments_block&) = delete;
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
245
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
246 tree_arguments_block& operator = (const tree_arguments_block&) = delete;
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
247
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
248 ~tree_arguments_block (void)
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
249 {
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
250 delete m_attr_list;
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
251 delete m_validation_list;
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
252
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
253 delete m_lead_comm;
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
254 delete m_trail_comm;
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
255 }
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
256
29863
c29cfcf7a941 provide default definitions for more tree_walker methods
John W. Eaton <jwe@octave.org>
parents: 29729
diff changeset
257 tree_args_block_attribute_list * attribute_list (void)
c29cfcf7a941 provide default definitions for more tree_walker methods
John W. Eaton <jwe@octave.org>
parents: 29729
diff changeset
258 {
c29cfcf7a941 provide default definitions for more tree_walker methods
John W. Eaton <jwe@octave.org>
parents: 29729
diff changeset
259 return m_attr_list;
c29cfcf7a941 provide default definitions for more tree_walker methods
John W. Eaton <jwe@octave.org>
parents: 29729
diff changeset
260 }
c29cfcf7a941 provide default definitions for more tree_walker methods
John W. Eaton <jwe@octave.org>
parents: 29729
diff changeset
261
c29cfcf7a941 provide default definitions for more tree_walker methods
John W. Eaton <jwe@octave.org>
parents: 29729
diff changeset
262 tree_args_block_validation_list * validation_list (void)
c29cfcf7a941 provide default definitions for more tree_walker methods
John W. Eaton <jwe@octave.org>
parents: 29729
diff changeset
263 {
c29cfcf7a941 provide default definitions for more tree_walker methods
John W. Eaton <jwe@octave.org>
parents: 29729
diff changeset
264 return m_validation_list;
c29cfcf7a941 provide default definitions for more tree_walker methods
John W. Eaton <jwe@octave.org>
parents: 29729
diff changeset
265 }
c29cfcf7a941 provide default definitions for more tree_walker methods
John W. Eaton <jwe@octave.org>
parents: 29729
diff changeset
266
29724
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
267 comment_list * leading_comment (void) { return m_lead_comm; }
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
268
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
269 comment_list * trailing_comment (void) { return m_trail_comm; }
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
270
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
271 void accept (tree_walker& tw)
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
272 {
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
273 tw.visit_arguments_block (*this);
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
274 }
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
275
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
276 private:
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
277
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
278 tree_args_block_attribute_list *m_attr_list;
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
279
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
280 tree_args_block_validation_list *m_validation_list;
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
281
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
282 // Comment preceding ARGUMENTS token.
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
283 comment_list *m_lead_comm;
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
284
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
285 // Comment preceding ENDARGUMENTS token.
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
286 comment_list *m_trail_comm;
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
287 };
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
288 }
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
289
c19f8cbe0fd5 initial implementation of parsing for arguments validaton block (bug #59405)
John W. Eaton <jwe@octave.org>
parents:
diff changeset
290 #endif