GNU Octave  4.4.1
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
pt-walk.h
Go to the documentation of this file.
1 /*
2 
3 Copyright (C) 1996-2018 John W. Eaton
4 
5 This file is part of Octave.
6 
7 Octave is free software: you can redistribute it and/or modify it
8 under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
11 
12 Octave is distributed in the hope that it will be useful, but
13 WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16 
17 You should have received a copy of the GNU General Public License
18 along with Octave; see the file COPYING. If not, see
19 <https://www.gnu.org/licenses/>.
20 
21 */
22 
23 #if ! defined (octave_pt_walk_h)
24 #define octave_pt_walk_h 1
25 
26 #include "octave-config.h"
27 
28 class octave_user_script;
30 
31 namespace octave
32 {
33  // No separate visitor needed
34  // Base classes only, so no need to include them.
35  //
36  // class tree_array_list
37  // class tree_unary_expression
38  // class tree_black_hole
39 
40  class tree_anon_fcn_handle;
41  class tree_argument_list;
42  class tree_binary_expression;
43  class tree_boolean_expression;
44  class tree_compound_binary_expression;
45  class tree_break_command;
46  class tree_colon_expression;
47  class tree_continue_command;
48  class tree_decl_command;
49  class tree_decl_init_list;
50  class tree_decl_elt;
51  class tree_simple_for_command;
52  class tree_complex_for_command;
53  class tree_function_def;
54  class tree_identifier;
55  class tree_if_clause;
56  class tree_if_command;
57  class tree_if_command_list;
58  class tree_switch_case;
59  class tree_switch_case_list;
60  class tree_switch_command;
61  class tree_index_expression;
62  class tree_matrix;
63  class tree_cell;
64  class tree_multi_assignment;
65  class tree_no_op_command;
66  class tree_constant;
67  class tree_fcn_handle;
68  class tree_funcall;
69  class tree_parameter_list;
70  class tree_postfix_expression;
71  class tree_prefix_expression;
72  class tree_return_command;
73  class tree_return_list;
74  class tree_simple_assignment;
75  class tree_statement;
76  class tree_statement_list;
77  class tree_try_catch_command;
78  class tree_unwind_protect_command;
79  class tree_while_command;
80  class tree_do_until_command;
81 
82  class tree_classdef_attribute;
83  class tree_classdef_attribute_list;
84  class tree_classdef_superclass;
85  class tree_classdef_superclass_list;
86  class tree_classdef_property;
87  class tree_classdef_property_list;
88  class tree_classdef_properties_block;
89  class tree_classdef_methods_list;
90  class tree_classdef_methods_block;
91  class tree_classdef_event;
92  class tree_classdef_events_list;
93  class tree_classdef_events_block;
94  class tree_classdef_enum;
95  class tree_classdef_enum_list;
96  class tree_classdef_enum_block;
97  class tree_classdef_body;
98  class tree_classdef;
99 
101  {
102  protected:
103 
104  tree_walker (void) { }
105 
106  virtual ~tree_walker (void) = default;
107 
108  public:
109 
110  // No copying!
111 
112  tree_walker (const tree_walker&) = delete;
113 
114  tree_walker& operator = (const tree_walker&) = delete;
115 
116  virtual void
118 
119  virtual void
121 
122  virtual void
124 
125  virtual void
127 
128  virtual void
130 
131  virtual void
133 
134  virtual void
136 
137  virtual void
139 
140  virtual void
142 
143  virtual void
145 
146  virtual void
148 
149  virtual void
151 
152  virtual void
154 
155  virtual void
157 
158  virtual void
160 
161  virtual void
163 
164  virtual void
166 
167  virtual void
169 
170  virtual void
172 
173  virtual void
175 
176  virtual void
178 
179  virtual void
181 
182  virtual void
184 
185  virtual void
187 
188  virtual void
189  visit_matrix (tree_matrix&) = 0;
190 
191  virtual void
192  visit_cell (tree_cell&) = 0;
193 
194  virtual void
196 
197  virtual void
199 
200  virtual void
202 
203  virtual void
205 
206  virtual void
208 
209  virtual void
211 
212  virtual void
214 
215  virtual void
217 
218  virtual void
220 
221  virtual void
223 
224  virtual void
226 
227  virtual void
229 
230  virtual void
232 
233  virtual void
235 
236  virtual void
238 
239  virtual void
241 
242  virtual void
244 
245  virtual void
247 
248  virtual void
250 
251  virtual void
253 
254  virtual void
256 
257  virtual void
259 
260  virtual void
262 
263  virtual void
265 
266  virtual void
268 
269  virtual void
271 
272  virtual void
274 
275  virtual void
277 
278  virtual void
280 
281  virtual void
283 
284  virtual void
286 
287  virtual void
289 
290  virtual void
292 
293  virtual void
295  };
296 }
297 
298 #if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS)
299 
300 OCTAVE_DEPRECATED (4.4, "use 'octave::tree_walker' instead")
301 typedef octave::tree_walker tree_walker;
302 
303 #endif
304 
305 #endif
virtual void visit_statement(tree_statement &)=0
virtual void visit_return_command(tree_return_command &)=0
virtual void visit_function_def(tree_function_def &)=0
virtual void visit_classdef_attribute(tree_classdef_attribute &)
Definition: pt-walk.h:246
virtual ~tree_walker(void)=default
virtual void visit_multi_assignment(tree_multi_assignment &)=0
virtual void visit_if_command_list(tree_if_command_list &)=0
virtual void visit_classdef_enum_list(tree_classdef_enum_list &)
Definition: pt-walk.h:285
virtual void visit_classdef_event(tree_classdef_event &)
Definition: pt-walk.h:273
virtual void visit_classdef_events_list(tree_classdef_events_list &)
Definition: pt-walk.h:276
virtual void visit_classdef_methods_block(tree_classdef_methods_block &)
Definition: pt-walk.h:270
virtual void visit_identifier(tree_identifier &)=0
virtual void visit_decl_elt(tree_decl_elt &)=0
virtual void visit_classdef_property(tree_classdef_property &)
Definition: pt-walk.h:258
virtual void visit_simple_for_command(tree_simple_for_command &)=0
virtual void visit_if_clause(tree_if_clause &)=0
virtual void visit_classdef_events_block(tree_classdef_events_block &)
Definition: pt-walk.h:279
virtual void visit_boolean_expression(tree_boolean_expression &expr)
Definition: pt-walk.cc:34
virtual void visit_parameter_list(tree_parameter_list &)=0
virtual void visit_break_command(tree_break_command &)=0
virtual void visit_octave_user_function(octave_user_function &)=0
virtual void visit_if_command(tree_if_command &)=0
virtual void visit_colon_expression(tree_colon_expression &)=0
virtual void visit_classdef(tree_classdef &)
Definition: pt-walk.h:294
virtual void visit_try_catch_command(tree_try_catch_command &)=0
virtual void visit_anon_fcn_handle(tree_anon_fcn_handle &)=0
virtual void visit_constant(tree_constant &)=0
virtual void visit_argument_list(tree_argument_list &)=0
virtual void visit_classdef_enum(tree_classdef_enum &)
Definition: pt-walk.h:282
virtual void visit_switch_command(tree_switch_command &)=0
virtual void visit_while_command(tree_while_command &)=0
virtual void visit_cell(tree_cell &)=0
virtual void visit_matrix(tree_matrix &)=0
virtual void visit_statement_list(tree_statement_list &)=0
virtual void visit_classdef_methods_list(tree_classdef_methods_list &)
Definition: pt-walk.h:267
virtual void visit_funcall(tree_funcall &)=0
virtual void visit_compound_binary_expression(tree_compound_binary_expression &expr)
Definition: pt-walk.cc:40
virtual void visit_switch_case(tree_switch_case &)=0
virtual void visit_no_op_command(tree_no_op_command &)=0
virtual void visit_decl_command(tree_decl_command &)=0
virtual void visit_index_expression(tree_index_expression &)=0
virtual void visit_classdef_superclass(tree_classdef_superclass &)
Definition: pt-walk.h:252
virtual void visit_classdef_body(tree_classdef_body &)
Definition: pt-walk.h:291
virtual void visit_classdef_superclass_list(tree_classdef_superclass_list &)
Definition: pt-walk.h:255
virtual void visit_classdef_properties_block(tree_classdef_properties_block &)
Definition: pt-walk.h:264
virtual void visit_simple_assignment(tree_simple_assignment &)=0
virtual void visit_complex_for_command(tree_complex_for_command &)=0
virtual void visit_classdef_attribute_list(tree_classdef_attribute_list &)
Definition: pt-walk.h:249
tree_walker & operator=(const tree_walker &)=delete
virtual void visit_unwind_protect_command(tree_unwind_protect_command &)=0
virtual void visit_prefix_expression(tree_prefix_expression &)=0
virtual void visit_binary_expression(tree_binary_expression &)=0
virtual void visit_return_list(tree_return_list &)=0
virtual void visit_octave_user_script(octave_user_script &)=0
virtual void visit_switch_case_list(tree_switch_case_list &)=0
virtual void visit_fcn_handle(tree_fcn_handle &)=0
virtual void visit_postfix_expression(tree_postfix_expression &)=0
virtual void visit_classdef_enum_block(tree_classdef_enum_block &)
Definition: pt-walk.h:288
virtual void visit_do_until_command(tree_do_until_command &)=0
virtual void visit_classdef_property_list(tree_classdef_property_list &)
Definition: pt-walk.h:261
virtual void visit_continue_command(tree_continue_command &)=0
virtual void visit_decl_init_list(tree_decl_init_list &)=0