GNU Octave  4.2.1
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
pt-walk.h
Go to the documentation of this file.
1 /*
2 
3 Copyright (C) 1996-2017 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 the
9 Free Software Foundation; either version 3 of the License, or (at your
10 option) any later version.
11 
12 Octave is distributed in the hope that it will be useful, but WITHOUT
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
15 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 <http://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 
29 class tree_argument_list;
31 class tree_break_command;
36 class tree_decl_elt;
40 class octave_user_script;
42 class tree_function_def;
43 class tree_identifier;
44 class tree_if_clause;
45 class tree_if_command;
47 class tree_switch_case;
51 class tree_matrix;
52 class tree_cell;
54 class tree_no_op_command;
55 class tree_constant;
56 class tree_fcn_handle;
57 class tree_funcall;
62 class tree_return_list;
64 class tree_statement;
68 class tree_while_command;
70 
83 class tree_classdef_enum;
86 class tree_classdef_body;
87 class tree_classdef;
88 
89 class
91 {
92 public:
93 
94  virtual void
95  visit_anon_fcn_handle (tree_anon_fcn_handle&) = 0;
96 
97  virtual void
98  visit_argument_list (tree_argument_list&) = 0;
99 
100  virtual void
101  visit_binary_expression (tree_binary_expression&) = 0;
102 
103  virtual void
104  visit_break_command (tree_break_command&) = 0;
105 
106  virtual void
107  visit_colon_expression (tree_colon_expression&) = 0;
108 
109  virtual void
110  visit_continue_command (tree_continue_command&) = 0;
111 
112  virtual void
113  visit_global_command (tree_global_command&) = 0;
114 
115  virtual void
116  visit_persistent_command (tree_persistent_command&) = 0;
117 
118  virtual void
119  visit_decl_elt (tree_decl_elt&) = 0;
120 
121  virtual void
122  visit_decl_init_list (tree_decl_init_list&) = 0;
123 
124  virtual void
125  visit_simple_for_command (tree_simple_for_command&) = 0;
126 
127  virtual void
128  visit_complex_for_command (tree_complex_for_command&) = 0;
129 
130  virtual void
131  visit_octave_user_script (octave_user_script&) = 0;
132 
133  virtual void
134  visit_octave_user_function (octave_user_function&) = 0;
135 
136  virtual void
137  visit_function_def (tree_function_def&) = 0;
138 
139  virtual void
140  visit_identifier (tree_identifier&) = 0;
141 
142  virtual void
143  visit_if_clause (tree_if_clause&) = 0;
144 
145  virtual void
146  visit_if_command (tree_if_command&) = 0;
147 
148  virtual void
149  visit_if_command_list (tree_if_command_list&) = 0;
150 
151  virtual void
152  visit_switch_case (tree_switch_case&) = 0;
153 
154  virtual void
155  visit_switch_case_list (tree_switch_case_list&) = 0;
156 
157  virtual void
158  visit_switch_command (tree_switch_command&) = 0;
159 
160  virtual void
161  visit_index_expression (tree_index_expression&) = 0;
162 
163  virtual void
164  visit_matrix (tree_matrix&) = 0;
165 
166  virtual void
167  visit_cell (tree_cell&) = 0;
168 
169  virtual void
170  visit_multi_assignment (tree_multi_assignment&) = 0;
171 
172  virtual void
173  visit_no_op_command (tree_no_op_command&) = 0;
174 
175  virtual void
176  visit_constant (tree_constant&) = 0;
177 
178  virtual void
179  visit_fcn_handle (tree_fcn_handle&) = 0;
180 
181  virtual void
182  visit_funcall (tree_funcall&) = 0;
183 
184  virtual void
185  visit_parameter_list (tree_parameter_list&) = 0;
186 
187  virtual void
188  visit_postfix_expression (tree_postfix_expression&) = 0;
189 
190  virtual void
191  visit_prefix_expression (tree_prefix_expression&) = 0;
192 
193  virtual void
194  visit_return_command (tree_return_command&) = 0;
195 
196  virtual void
197  visit_return_list (tree_return_list&) = 0;
198 
199  virtual void
200  visit_simple_assignment (tree_simple_assignment&) = 0;
201 
202  virtual void
203  visit_statement (tree_statement&) = 0;
204 
205  virtual void
206  visit_statement_list (tree_statement_list&) = 0;
207 
208  virtual void
209  visit_try_catch_command (tree_try_catch_command&) = 0;
210 
211  virtual void
212  visit_unwind_protect_command (tree_unwind_protect_command&) = 0;
213 
214  virtual void
215  visit_while_command (tree_while_command&) = 0;
216 
217  virtual void
218  visit_do_until_command (tree_do_until_command&) = 0;
219 
220  virtual void
222 
223  virtual void
225 
226  virtual void
228 
229  virtual void
231 
232  virtual void
234 
235  virtual void
237 
238  virtual void
240 
241  virtual void
243 
244  virtual void
246 
247  virtual void
249 
250  virtual void
252 
253  virtual void
255 
256  virtual void
258 
259  virtual void
261 
262  virtual void
264 
265  virtual void
267 
268  virtual void
270 
271 protected:
272 
273  tree_walker (void) { }
274 
275  virtual ~tree_walker (void) { }
276 
277 private:
278 
279  // No copying!
280 
281  tree_walker (const tree_walker&);
282 
284 };
285 
286 #endif
virtual void visit_classdef_methods_list(tree_classdef_methods_list &)
Definition: pt-walk.h:242
virtual void visit_classdef_events_block(tree_classdef_events_block &)
Definition: pt-walk.h:254
virtual void visit_classdef_superclass_list(tree_classdef_superclass_list &)
Definition: pt-walk.h:230
virtual void visit_classdef_properties_block(tree_classdef_properties_block &)
Definition: pt-walk.h:239
virtual void visit_classdef_attribute_list(tree_classdef_attribute_list &)
Definition: pt-walk.h:224
virtual void visit_classdef_enum_list(tree_classdef_enum_list &)
Definition: pt-walk.h:260
virtual void visit_classdef_body(tree_classdef_body &)
Definition: pt-walk.h:266
virtual void visit_classdef_property_list(tree_classdef_property_list &)
Definition: pt-walk.h:236
virtual void visit_classdef_event(tree_classdef_event &)
Definition: pt-walk.h:248
virtual void visit_classdef_methods_block(tree_classdef_methods_block &)
Definition: pt-walk.h:245
virtual void visit_classdef_property(tree_classdef_property &)
Definition: pt-walk.h:233
virtual void visit_classdef(tree_classdef &)
Definition: pt-walk.h:269
virtual void visit_classdef_attribute(tree_classdef_attribute &)
Definition: pt-walk.h:221
virtual void visit_classdef_enum(tree_classdef_enum &)
Definition: pt-walk.h:257
virtual void visit_classdef_events_list(tree_classdef_events_list &)
Definition: pt-walk.h:251
tree_walker(void)
Definition: pt-walk.h:273
virtual void visit_classdef_enum_block(tree_classdef_enum_block &)
Definition: pt-walk.h:263
virtual ~tree_walker(void)
Definition: pt-walk.h:275
virtual void visit_classdef_superclass(tree_classdef_superclass &)
Definition: pt-walk.h:227
tree_classdef & operator=(const tree_classdef &)