GNU Octave  6.2.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-2021 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 
31 class octave_user_script;
33 
34 namespace 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_argument_list;
45  class tree_binary_expression;
46  class tree_boolean_expression;
47  class tree_compound_binary_expression;
48  class tree_break_command;
49  class tree_colon_expression;
50  class tree_continue_command;
51  class tree_decl_command;
52  class tree_decl_init_list;
53  class tree_decl_elt;
54  class tree_simple_for_command;
55  class tree_complex_for_command;
56  class tree_function_def;
57  class tree_identifier;
58  class tree_if_clause;
59  class tree_if_command;
60  class tree_if_command_list;
61  class tree_switch_case;
62  class tree_switch_case_list;
63  class tree_switch_command;
64  class tree_index_expression;
65  class tree_matrix;
66  class tree_cell;
67  class tree_multi_assignment;
68  class tree_no_op_command;
69  class tree_constant;
70  class tree_fcn_handle;
71  class tree_parameter_list;
72  class tree_postfix_expression;
73  class tree_prefix_expression;
74  class tree_return_command;
75  class tree_simple_assignment;
76  class tree_statement;
77  class tree_statement_list;
78  class tree_try_catch_command;
79  class tree_unwind_protect_command;
80  class tree_while_command;
81  class tree_do_until_command;
82 
83  class tree_superclass_ref;
84  class tree_metaclass_query;
85  class tree_classdef_attribute;
86  class tree_classdef_attribute_list;
87  class tree_classdef_superclass;
88  class tree_classdef_superclass_list;
89  class tree_classdef_property;
90  class tree_classdef_property_list;
91  class tree_classdef_properties_block;
92  class tree_classdef_methods_list;
93  class tree_classdef_methods_block;
94  class tree_classdef_event;
95  class tree_classdef_events_list;
96  class tree_classdef_events_block;
97  class tree_classdef_enum;
98  class tree_classdef_enum_list;
99  class tree_classdef_enum_block;
100  class tree_classdef_body;
101  class tree_classdef;
102 
104  {
105  protected:
106 
107  tree_walker (void) { }
108 
109  virtual ~tree_walker (void) = default;
110 
111  public:
112 
113  // No copying!
114 
115  tree_walker (const tree_walker&) = delete;
116 
118 
120 
121  virtual void visit_argument_list (tree_argument_list&);
122 
124 
126 
128 
129  virtual void visit_break_command (tree_break_command&);
130 
132 
134 
135  virtual void visit_decl_command (tree_decl_command&);
136 
137  virtual void visit_decl_elt (tree_decl_elt&);
138 
140 
142 
144 
146 
148 
149  virtual void visit_function_def (tree_function_def&);
150 
151  virtual void visit_identifier (tree_identifier&);
152 
153  virtual void visit_if_clause (tree_if_clause&);
154 
155  virtual void visit_if_command (tree_if_command&);
156 
158 
159  virtual void visit_switch_case (tree_switch_case&);
160 
162 
164 
166 
167  virtual void visit_matrix (tree_matrix&);
168 
169  virtual void visit_cell (tree_cell&);
170 
172 
173  virtual void visit_no_op_command (tree_no_op_command&);
174 
175  virtual void visit_constant (tree_constant&);
176 
177  virtual void visit_fcn_handle (tree_fcn_handle&);
178 
180 
182 
184 
186 
188 
189  virtual void visit_statement (tree_statement&);
190 
192 
194 
196 
197  virtual void visit_while_command (tree_while_command&);
198 
200 
202 
204 
206 
208 
210 
212 
214 
216 
218 
220 
222 
224 
226 
228 
229  virtual void visit_classdef_enum (tree_classdef_enum&);
230 
232 
234 
235  virtual void visit_classdef_body (tree_classdef_body&);
236 
237  virtual void visit_classdef (tree_classdef&);
238  };
239 }
240 
241 #endif
virtual void visit_octave_user_script(octave_user_script &)
Definition: pt-walk.cc:177
virtual void visit_cell(tree_cell &)
Definition: pt-walk.cc:347
tree_walker(const tree_walker &)=delete
virtual void visit_classdef_property_list(tree_classdef_property_list &)
Definition: pt-walk.cc:551
virtual void visit_classdef_attribute(tree_classdef_attribute &)
Definition: pt-walk.cc:526
virtual void visit_statement_list(tree_statement_list &)
Definition: pt-walk.cc:450
virtual void visit_octave_user_function(octave_user_function &)
Definition: pt-walk.cc:185
virtual void visit_classdef_property(tree_classdef_property &)
Definition: pt-walk.cc:546
virtual void visit_simple_assignment(tree_simple_assignment &)
Definition: pt-walk.cc:422
virtual void visit_decl_init_list(tree_decl_init_list &)
Definition: pt-walk.cc:124
virtual void visit_classdef_events_block(tree_classdef_events_block &)
Definition: pt-walk.cc:581
virtual void visit_constant(tree_constant &)
Definition: pt-walk.cc:378
virtual void visit_classdef_methods_list(tree_classdef_methods_list &)
Definition: pt-walk.cc:561
virtual void visit_decl_command(tree_decl_command &)
Definition: pt-walk.cc:103
virtual void visit_return_command(tree_return_command &)
Definition: pt-walk.cc:417
virtual void visit_complex_for_command(tree_complex_for_command &)
Definition: pt-walk.cc:159
virtual void visit_identifier(tree_identifier &)
Definition: pt-walk.cc:203
virtual void visit_index_expression(tree_index_expression &)
Definition: pt-walk.cc:281
virtual void visit_prefix_expression(tree_prefix_expression &)
Definition: pt-walk.cc:409
virtual void visit_switch_case_list(tree_switch_case_list &)
Definition: pt-walk.cc:255
virtual void visit_binary_expression(tree_binary_expression &)
Definition: pt-walk.cc:52
virtual void visit_if_command_list(tree_if_command_list &)
Definition: pt-walk.cc:229
virtual void visit_if_clause(tree_if_clause &)
Definition: pt-walk.cc:208
virtual void visit_try_catch_command(tree_try_catch_command &)
Definition: pt-walk.cc:459
virtual void visit_boolean_expression(tree_boolean_expression &)
Definition: pt-walk.cc:65
virtual void visit_classdef(tree_classdef &)
Definition: pt-walk.cc:606
virtual void visit_classdef_body(tree_classdef_body &)
Definition: pt-walk.cc:601
virtual void visit_switch_case(tree_switch_case &)
Definition: pt-walk.cc:242
virtual void visit_break_command(tree_break_command &)
Definition: pt-walk.cc:75
virtual void visit_classdef_event(tree_classdef_event &)
Definition: pt-walk.cc:571
virtual ~tree_walker(void)=default
virtual void visit_classdef_enum_list(tree_classdef_enum_list &)
Definition: pt-walk.cc:591
virtual void visit_colon_expression(tree_colon_expression &)
Definition: pt-walk.cc:80
virtual void visit_classdef_superclass_list(tree_classdef_superclass_list &)
Definition: pt-walk.cc:541
tree_walker & operator=(const tree_walker &)=delete
virtual void visit_classdef_enum_block(tree_classdef_enum_block &)
Definition: pt-walk.cc:596
virtual void visit_decl_elt(tree_decl_elt &)
Definition: pt-walk.cc:111
virtual void visit_classdef_superclass(tree_classdef_superclass &)
Definition: pt-walk.cc:536
virtual void visit_compound_binary_expression(tree_compound_binary_expression &)
Definition: pt-walk.cc:70
virtual void visit_continue_command(tree_continue_command &)
Definition: pt-walk.cc:98
virtual void visit_switch_command(tree_switch_command &)
Definition: pt-walk.cc:268
virtual void visit_classdef_properties_block(tree_classdef_properties_block &)
Definition: pt-walk.cc:556
virtual void visit_multi_assignment(tree_multi_assignment &)
Definition: pt-walk.cc:360
virtual void visit_if_command(tree_if_command &)
Definition: pt-walk.cc:221
virtual void visit_classdef_methods_block(tree_classdef_methods_block &)
Definition: pt-walk.cc:566
virtual void visit_argument_list(tree_argument_list &)
Definition: pt-walk.cc:39
virtual void visit_matrix(tree_matrix &)
Definition: pt-walk.cc:334
virtual void visit_superclass_ref(tree_superclass_ref &)
Definition: pt-walk.cc:516
virtual void visit_no_op_command(tree_no_op_command &)
Definition: pt-walk.cc:373
virtual void visit_classdef_events_list(tree_classdef_events_list &)
Definition: pt-walk.cc:576
virtual void visit_simple_for_command(tree_simple_for_command &)
Definition: pt-walk.cc:136
virtual void visit_statement(tree_statement &)
Definition: pt-walk.cc:435
virtual void visit_classdef_attribute_list(tree_classdef_attribute_list &)
Definition: pt-walk.cc:531
virtual void visit_while_command(tree_while_command &)
Definition: pt-walk.cc:490
virtual void visit_anon_fcn_handle(tree_anon_fcn_handle &)
Definition: pt-walk.cc:34
virtual void visit_do_until_command(tree_do_until_command &)
Definition: pt-walk.cc:503
virtual void visit_classdef_enum(tree_classdef_enum &)
Definition: pt-walk.cc:586
virtual void visit_metaclass_query(tree_metaclass_query &)
Definition: pt-walk.cc:521
virtual void visit_postfix_expression(tree_postfix_expression &)
Definition: pt-walk.cc:401
virtual void visit_parameter_list(tree_parameter_list &)
Definition: pt-walk.cc:388
virtual void visit_function_def(tree_function_def &)
Definition: pt-walk.cc:193
virtual void visit_fcn_handle(tree_fcn_handle &)
Definition: pt-walk.cc:383
virtual void visit_unwind_protect_command(tree_unwind_protect_command &)
Definition: pt-walk.cc:477