comparison src/pt-check.h @ 3011:2ad9af85b89b

[project @ 1997-06-01 19:34:20 by jwe]
author jwe
date Sun, 01 Jun 1997 19:37:26 +0000
parents
children b80bbb43a1a9
comparison
equal deleted inserted replaced
3010:1aeb8869e464 3011:2ad9af85b89b
1 /*
2
3 Copyright (C) 1996, 1997 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 2, or (at your option) any
10 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, write to the Free
19 Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20
21 */
22
23 #if !defined (octave_tree_checker_h)
24 #define octave_tree_checker_h 1
25
26 #if defined (__GNUG__)
27 #pragma interface
28 #endif
29
30 #include "pt-walk.h"
31
32 // How to check the semantics of the code that the parse trees represent.
33
34 class
35 tree_checker : public tree_walker
36 {
37 public:
38
39 tree_checker (void)
40 : do_lvalue_check (false) { }
41
42 ~tree_checker (void) { }
43
44 void visit_argument_list (tree_argument_list&);
45
46 void visit_binary_expression (tree_binary_expression&);
47
48 void visit_break_command (tree_break_command&);
49
50 void visit_colon_expression (tree_colon_expression&);
51
52 void visit_continue_command (tree_continue_command&);
53
54 void visit_decl_command (tree_decl_command&);
55
56 void visit_decl_elt (tree_decl_elt&);
57
58 void visit_decl_init_list (tree_decl_init_list&);
59
60 void visit_simple_for_command (tree_simple_for_command&);
61
62 void visit_complex_for_command (tree_complex_for_command&);
63
64 void visit_octave_user_function (octave_user_function&);
65
66 void visit_identifier (tree_identifier&);
67
68 void visit_if_clause (tree_if_clause&);
69
70 void visit_if_command (tree_if_command&);
71
72 void visit_if_command_list (tree_if_command_list&);
73
74 void visit_index_expression (tree_index_expression&);
75
76 void visit_indirect_ref (tree_indirect_ref&);
77
78 void visit_matrix (tree_matrix&);
79
80 void visit_multi_assignment (tree_multi_assignment&);
81
82 void visit_no_op_command (tree_no_op_command&);
83
84 void visit_constant (tree_constant&);
85
86 void visit_parameter_list (tree_parameter_list&);
87
88 void visit_plot_command (tree_plot_command&);
89
90 void visit_plot_limits (plot_limits&);
91
92 void visit_plot_range (plot_range&);
93
94 void visit_postfix_expression (tree_postfix_expression&);
95
96 void visit_prefix_expression (tree_prefix_expression&);
97
98 void visit_return_command (tree_return_command&);
99
100 void visit_return_list (tree_return_list&);
101
102 void visit_simple_assignment (tree_simple_assignment&);
103
104 void visit_statement (tree_statement&);
105
106 void visit_statement_list (tree_statement_list&);
107
108 void visit_subplot (subplot&);
109
110 void visit_subplot_list (subplot_list&);
111
112 void visit_subplot_style (subplot_style&);
113
114 void visit_subplot_using (subplot_using&);
115
116 void visit_switch_case (tree_switch_case&);
117
118 void visit_switch_case_list (tree_switch_case_list&);
119
120 void visit_switch_command (tree_switch_command&);
121
122 void visit_try_catch_command (tree_try_catch_command&);
123
124 void visit_unwind_protect_command (tree_unwind_protect_command&);
125
126 void visit_while_command (tree_while_command&);
127
128 private:
129
130 bool do_lvalue_check;
131
132 void gripe (const string& msg, int line);
133
134 // No copying!
135
136 tree_checker (const tree_checker&);
137
138 tree_checker& operator = (const tree_checker&);
139 };
140
141 #endif
142
143 /*
144 ;;; Local Variables: ***
145 ;;; mode: C++ ***
146 ;;; End: ***
147 */