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