GNU Octave
3.8.0
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
Main Page
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Pages
libinterp
parse-tree
pt-check.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_check_h)
24
#define octave_pt_check_h 1
25
26
#include "
pt-walk.h
"
27
28
class
tree_decl_command
;
29
30
// How to check the semantics of the code that the parse trees represent.
31
32
class
33
tree_checker
:
public
tree_walker
34
{
35
public
:
36
37
tree_checker
(
void
)
38
: do_lvalue_check (false), file_name () { }
39
40
~tree_checker
(
void
) { }
41
42
void
visit_argument_list (
tree_argument_list
&);
43
44
void
visit_binary_expression (
tree_binary_expression
&);
45
46
void
visit_break_command (
tree_break_command
&);
47
48
void
visit_colon_expression (
tree_colon_expression
&);
49
50
void
visit_continue_command(
tree_continue_command
&);
51
52
void
visit_global_command (
tree_global_command
&);
53
54
void
visit_persistent_command (
tree_persistent_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_script (
octave_user_script
&);
65
66
void
visit_octave_user_function (
octave_user_function
&);
67
68
void
visit_function_def (
tree_function_def
&);
69
70
void
visit_identifier (
tree_identifier
&);
71
72
void
visit_if_clause (
tree_if_clause
&);
73
74
void
visit_if_command (
tree_if_command
&);
75
76
void
visit_if_command_list (
tree_if_command_list
&);
77
78
void
visit_index_expression (
tree_index_expression
&);
79
80
void
visit_matrix (
tree_matrix
&);
81
82
void
visit_cell (
tree_cell
&);
83
84
void
visit_multi_assignment (
tree_multi_assignment
&);
85
86
void
visit_no_op_command (
tree_no_op_command
&);
87
88
void
visit_anon_fcn_handle (
tree_anon_fcn_handle
&);
89
90
void
visit_constant (
tree_constant
&);
91
92
void
visit_fcn_handle (
tree_fcn_handle
&);
93
94
void
visit_parameter_list (
tree_parameter_list
&);
95
96
void
visit_postfix_expression (
tree_postfix_expression
&);
97
98
void
visit_prefix_expression (
tree_prefix_expression
&);
99
100
void
visit_return_command (
tree_return_command
&);
101
102
void
visit_return_list (
tree_return_list
&);
103
104
void
visit_simple_assignment (
tree_simple_assignment
&);
105
106
void
visit_statement (
tree_statement
&);
107
108
void
visit_statement_list (
tree_statement_list
&);
109
110
void
visit_switch_case (
tree_switch_case
&);
111
112
void
visit_switch_case_list (
tree_switch_case_list
&);
113
114
void
visit_switch_command (
tree_switch_command
&);
115
116
void
visit_try_catch_command (
tree_try_catch_command
&);
117
118
void
visit_unwind_protect_command (
tree_unwind_protect_command
&);
119
120
void
visit_while_command (
tree_while_command
&);
121
122
void
visit_do_until_command (
tree_do_until_command
&);
123
124
private
:
125
126
bool
do_lvalue_check
;
127
128
std::string
file_name
;
129
130
void
do_decl_command (
tree_decl_command
&);
131
132
void
gripe (
const
std::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
Generated on Mon Dec 30 2013 03:04:37 for GNU Octave by
1.8.1.2