GNU Octave 7.1.0
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-2022 The Octave Project Developers
4//
5// See the file COPYRIGHT.md in the top-level directory of this
6// distribution or <https://octave.org/copyright/>.
7//
8// This file is part of Octave.
9//
10// Octave is free software: you can redistribute it and/or modify it
11// under the terms of the GNU General Public License as published by
12// the Free Software Foundation, either version 3 of the License, or
13// (at your option) any later version.
14//
15// Octave is distributed in the hope that it will be useful, but
16// WITHOUT ANY WARRANTY; without even the implied warranty of
17// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18// GNU General Public License for more details.
19//
20// You should have received a copy of the GNU General Public License
21// along with Octave; see the file COPYING. If not, see
22// <https://www.gnu.org/licenses/>.
23//
24////////////////////////////////////////////////////////////////////////
25
26#if ! defined (octave_pt_walk_h)
27#define octave_pt_walk_h 1
28
29#include "octave-config.h"
30
33
34namespace octave
35{
36 // No separate visitor needed
37 // Base classes only, so no need to include them.
38 //
39 // class tree_array_list
40 // class tree_unary_expression
41 // class tree_black_hole
42
43 class tree_anon_fcn_handle;
44 class tree_arg_size_spec;
45 class tree_arg_validation;
46 class tree_arg_validation_fcns;
47 class tree_args_block_attribute_list;
48 class tree_args_block_validation_list;
49 class tree_argument_list;
50 class tree_arguments_block;
51 class tree_binary_expression;
52 class tree_boolean_expression;
53 class tree_compound_binary_expression;
54 class tree_break_command;
55 class tree_colon_expression;
56 class tree_continue_command;
57 class tree_decl_command;
58 class tree_decl_init_list;
59 class tree_decl_elt;
60 class tree_simple_for_command;
61 class tree_complex_for_command;
62 class tree_spmd_command;
63 class tree_function_def;
64 class tree_identifier;
65 class tree_if_clause;
66 class tree_if_command;
67 class tree_if_command_list;
68 class tree_switch_case;
69 class tree_switch_case_list;
70 class tree_switch_command;
71 class tree_index_expression;
72 class tree_matrix;
73 class tree_cell;
74 class tree_multi_assignment;
75 class tree_no_op_command;
76 class tree_constant;
77 class tree_fcn_handle;
78 class tree_parameter_list;
79 class tree_postfix_expression;
80 class tree_prefix_expression;
81 class tree_return_command;
82 class tree_simple_assignment;
83 class tree_statement;
84 class tree_statement_list;
85 class tree_try_catch_command;
86 class tree_unwind_protect_command;
87 class tree_while_command;
88 class tree_do_until_command;
89
90 class tree_superclass_ref;
91 class tree_metaclass_query;
92 class tree_classdef_attribute;
93 class tree_classdef_attribute_list;
94 class tree_classdef_superclass;
95 class tree_classdef_superclass_list;
96 class tree_classdef_property;
97 class tree_classdef_property_list;
98 class tree_classdef_properties_block;
99 class tree_classdef_methods_list;
100 class tree_classdef_methods_block;
101 class tree_classdef_event;
102 class tree_classdef_events_list;
103 class tree_classdef_events_block;
104 class tree_classdef_enum;
105 class tree_classdef_enum_list;
106 class tree_classdef_enum_block;
107 class tree_classdef_body;
108 class tree_classdef;
109
111 {
112 protected:
113
114 tree_walker (void) { }
115
116 virtual ~tree_walker (void) = default;
117
118 public:
119
120 // No copying!
121
122 tree_walker (const tree_walker&) = delete;
123
125
127
129
131
133
135
137
139
141
143
145
147
149
151
153
155
156 virtual void visit_decl_elt (tree_decl_elt&);
157
159
161
163
165
167
169
171
172 virtual void visit_identifier (tree_identifier&);
173
174 virtual void visit_if_clause (tree_if_clause&);
175
176 virtual void visit_if_command (tree_if_command&);
177
179
180 virtual void visit_switch_case (tree_switch_case&);
181
183
185
187
188 virtual void visit_matrix (tree_matrix&);
189
190 virtual void visit_cell (tree_cell&);
191
193
195
196 virtual void visit_constant (tree_constant&);
197
198 virtual void visit_fcn_handle (tree_fcn_handle&);
199
201
203
205
207
209
210 virtual void visit_statement (tree_statement&);
211
213
215
217
219
221
223
225
227
229
231
233
235
237
239
241
243
245
247
249
251
253
255
257
258 virtual void visit_classdef (tree_classdef&);
259 };
260}
261
262#endif
virtual void visit_compound_binary_expression(tree_compound_binary_expression &)
Definition: pt-walk.cc:152
tree_walker(const tree_walker &)=delete
virtual void visit_classdef_attribute(tree_classdef_attribute &)
Definition: pt-walk.cc:616
virtual void visit_boolean_expression(tree_boolean_expression &)
Definition: pt-walk.cc:147
virtual void visit_unwind_protect_command(tree_unwind_protect_command &)
Definition: pt-walk.cc:567
virtual void visit_try_catch_command(tree_try_catch_command &)
Definition: pt-walk.cc:549
virtual void visit_if_command_list(tree_if_command_list &)
Definition: pt-walk.cc:319
virtual void visit_classdef_methods_list(tree_classdef_methods_list &)
Definition: pt-walk.cc:675
virtual void visit_multi_assignment(tree_multi_assignment &)
Definition: pt-walk.cc:450
virtual void visit_return_command(tree_return_command &)
Definition: pt-walk.cc:507
virtual void visit_classdef_methods_block(tree_classdef_methods_block &)
Definition: pt-walk.cc:686
virtual void visit_continue_command(tree_continue_command &)
Definition: pt-walk.cc:180
virtual void visit_classdef_enum_block(tree_classdef_enum_block &)
Definition: pt-walk.cc:730
virtual void visit_classdef(tree_classdef &)
Definition: pt-walk.cc:766
virtual void visit_switch_case_list(tree_switch_case_list &)
Definition: pt-walk.cc:345
virtual void visit_classdef_superclass(tree_classdef_superclass &)
Definition: pt-walk.cc:638
virtual void visit_classdef_property(tree_classdef_property &)
Definition: pt-walk.cc:652
virtual void visit_complex_for_command(tree_complex_for_command &)
Definition: pt-walk.cc:241
virtual void visit_break_command(tree_break_command &)
Definition: pt-walk.cc:157
virtual void visit_matrix(tree_matrix &)
Definition: pt-walk.cc:424
virtual void visit_args_block_validation_list(tree_args_block_validation_list &)
Definition: pt-walk.cc:81
virtual void visit_fcn_handle(tree_fcn_handle &)
Definition: pt-walk.cc:473
virtual void visit_colon_expression(tree_colon_expression &)
Definition: pt-walk.cc:162
virtual void visit_arg_size_spec(tree_arg_size_spec &)
Definition: pt-walk.cc:118
virtual void visit_spmd_command(tree_spmd_command &)
Definition: pt-walk.cc:259
virtual void visit_do_until_command(tree_do_until_command &)
Definition: pt-walk.cc:593
virtual void visit_no_op_command(tree_no_op_command &)
Definition: pt-walk.cc:463
virtual void visit_binary_expression(tree_binary_expression &)
Definition: pt-walk.cc:134
virtual void visit_classdef_events_block(tree_classdef_events_block &)
Definition: pt-walk.cc:708
virtual void visit_simple_for_command(tree_simple_for_command &)
Definition: pt-walk.cc:218
virtual void visit_classdef_property_list(tree_classdef_property_list &)
Definition: pt-walk.cc:658
virtual void visit_postfix_expression(tree_postfix_expression &)
Definition: pt-walk.cc:491
virtual void visit_prefix_expression(tree_prefix_expression &)
Definition: pt-walk.cc:499
virtual void visit_anon_fcn_handle(tree_anon_fcn_handle &)
Definition: pt-walk.cc:34
virtual ~tree_walker(void)=default
virtual void visit_classdef_body(tree_classdef_body &)
Definition: pt-walk.cc:738
virtual void visit_classdef_enum(tree_classdef_enum &)
Definition: pt-walk.cc:716
virtual void visit_args_block_attribute_list(tree_args_block_attribute_list &)
Definition: pt-walk.cc:73
virtual void visit_parameter_list(tree_parameter_list &)
Definition: pt-walk.cc:478
virtual void visit_arguments_block(tree_arguments_block &)
Definition: pt-walk.cc:60
virtual void visit_statement(tree_statement &)
Definition: pt-walk.cc:525
virtual void visit_index_expression(tree_index_expression &)
Definition: pt-walk.cc:371
virtual void visit_decl_command(tree_decl_command &)
Definition: pt-walk.cc:185
virtual void visit_classdef_enum_list(tree_classdef_enum_list &)
Definition: pt-walk.cc:721
virtual void visit_switch_case(tree_switch_case &)
Definition: pt-walk.cc:332
virtual void visit_cell(tree_cell &)
Definition: pt-walk.cc:437
virtual void visit_identifier(tree_identifier &)
Definition: pt-walk.cc:293
virtual void visit_classdef_properties_block(tree_classdef_properties_block &)
Definition: pt-walk.cc:667
virtual void visit_classdef_superclass_list(tree_classdef_superclass_list &)
Definition: pt-walk.cc:643
virtual void visit_decl_init_list(tree_decl_init_list &)
Definition: pt-walk.cc:206
tree_walker & operator=(const tree_walker &)=delete
virtual void visit_if_clause(tree_if_clause &)
Definition: pt-walk.cc:298
virtual void visit_statement_list(tree_statement_list &)
Definition: pt-walk.cc:540
virtual void visit_arg_validation_fcns(tree_arg_validation_fcns &)
Definition: pt-walk.cc:126
virtual void visit_if_command(tree_if_command &)
Definition: pt-walk.cc:311
virtual void visit_argument_list(tree_argument_list &)
Definition: pt-walk.cc:47
virtual void visit_classdef_attribute_list(tree_classdef_attribute_list &)
Definition: pt-walk.cc:629
virtual void visit_decl_elt(tree_decl_elt &)
Definition: pt-walk.cc:193
virtual void visit_classdef_event(tree_classdef_event &)
Definition: pt-walk.cc:694
virtual void visit_classdef_events_list(tree_classdef_events_list &)
Definition: pt-walk.cc:699
virtual void visit_constant(tree_constant &)
Definition: pt-walk.cc:468
virtual void visit_simple_assignment(tree_simple_assignment &)
Definition: pt-walk.cc:512
virtual void visit_superclass_ref(tree_superclass_ref &)
Definition: pt-walk.cc:606
virtual void visit_octave_user_script(octave_user_script &)
Definition: pt-walk.cc:267
virtual void visit_arg_validation(tree_arg_validation &)
Definition: pt-walk.cc:90
virtual void visit_octave_user_function(octave_user_function &)
Definition: pt-walk.cc:275
virtual void visit_function_def(tree_function_def &)
Definition: pt-walk.cc:283
virtual void visit_metaclass_query(tree_metaclass_query &)
Definition: pt-walk.cc:611
virtual void visit_while_command(tree_while_command &)
Definition: pt-walk.cc:580
virtual void visit_switch_command(tree_switch_command &)
Definition: pt-walk.cc:358