GNU Octave  3.8.0
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-2013 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 
27 class tree_argument_list;
29 class tree_break_command;
34 class tree_decl_elt;
38 class octave_user_script;
40 class tree_function_def;
41 class tree_identifier;
42 class tree_if_clause;
43 class tree_if_command;
45 class tree_switch_case;
49 class tree_matrix;
50 class tree_cell;
52 class tree_no_op_command;
53 class tree_constant;
54 class tree_fcn_handle;
59 class tree_return_list;
61 class tree_statement;
65 class tree_while_command;
67 
68 class
70 {
71 public:
72 
73  virtual void
74  visit_anon_fcn_handle (tree_anon_fcn_handle&) = 0;
75 
76  virtual void
77  visit_argument_list (tree_argument_list&) = 0;
78 
79  virtual void
80  visit_binary_expression (tree_binary_expression&) = 0;
81 
82  virtual void
83  visit_break_command (tree_break_command&) = 0;
84 
85  virtual void
86  visit_colon_expression (tree_colon_expression&) = 0;
87 
88  virtual void
89  visit_continue_command (tree_continue_command&) = 0;
90 
91  virtual void
92  visit_global_command (tree_global_command&) = 0;
93 
94  virtual void
95  visit_persistent_command (tree_persistent_command&) = 0;
96 
97  virtual void
98  visit_decl_elt (tree_decl_elt&) = 0;
99 
100  virtual void
101  visit_decl_init_list (tree_decl_init_list&) = 0;
102 
103  virtual void
104  visit_simple_for_command (tree_simple_for_command&) = 0;
105 
106  virtual void
107  visit_complex_for_command (tree_complex_for_command&) = 0;
108 
109  virtual void
110  visit_octave_user_script (octave_user_script&) = 0;
111 
112  virtual void
113  visit_octave_user_function (octave_user_function&) = 0;
114 
115  virtual void
116  visit_function_def (tree_function_def&) = 0;
117 
118  virtual void
119  visit_identifier (tree_identifier&) = 0;
120 
121  virtual void
122  visit_if_clause (tree_if_clause&) = 0;
123 
124  virtual void
125  visit_if_command (tree_if_command&) = 0;
126 
127  virtual void
128  visit_if_command_list (tree_if_command_list&) = 0;
129 
130  virtual void
131  visit_switch_case (tree_switch_case&) = 0;
132 
133  virtual void
134  visit_switch_case_list (tree_switch_case_list&) = 0;
135 
136  virtual void
137  visit_switch_command (tree_switch_command&) = 0;
138 
139  virtual void
140  visit_index_expression (tree_index_expression&) = 0;
141 
142  virtual void
143  visit_matrix (tree_matrix&) = 0;
144 
145  virtual void
146  visit_cell (tree_cell&) = 0;
147 
148  virtual void
149  visit_multi_assignment (tree_multi_assignment&) = 0;
150 
151  virtual void
152  visit_no_op_command (tree_no_op_command&) = 0;
153 
154  virtual void
155  visit_constant (tree_constant&) = 0;
156 
157  virtual void
158  visit_fcn_handle (tree_fcn_handle&) = 0;
159 
160  virtual void
161  visit_parameter_list (tree_parameter_list&) = 0;
162 
163  virtual void
164  visit_postfix_expression (tree_postfix_expression&) = 0;
165 
166  virtual void
167  visit_prefix_expression (tree_prefix_expression&) = 0;
168 
169  virtual void
170  visit_return_command (tree_return_command&) = 0;
171 
172  virtual void
173  visit_return_list (tree_return_list&) = 0;
174 
175  virtual void
176  visit_simple_assignment (tree_simple_assignment&) = 0;
177 
178  virtual void
179  visit_statement (tree_statement&) = 0;
180 
181  virtual void
182  visit_statement_list (tree_statement_list&) = 0;
183 
184  virtual void
185  visit_try_catch_command (tree_try_catch_command&) = 0;
186 
187  virtual void
188  visit_unwind_protect_command (tree_unwind_protect_command&) = 0;
189 
190  virtual void
191  visit_while_command (tree_while_command&) = 0;
192 
193  virtual void
194  visit_do_until_command (tree_do_until_command&) = 0;
195 
196 protected:
197 
198  tree_walker (void) { }
199 
200  virtual ~tree_walker (void) { }
201 
202 private:
203 
204  // No copying!
205 
206  tree_walker (const tree_walker&);
207 
209 };
210 
211 #endif