GNU Octave
4.0.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-2015 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_funcall (
tree_funcall
&);
95
96
void
visit_parameter_list (
tree_parameter_list
&);
97
98
void
visit_postfix_expression (
tree_postfix_expression
&);
99
100
void
visit_prefix_expression (
tree_prefix_expression
&);
101
102
void
visit_return_command (
tree_return_command
&);
103
104
void
visit_return_list (
tree_return_list
&);
105
106
void
visit_simple_assignment (
tree_simple_assignment
&);
107
108
void
visit_statement (
tree_statement
&);
109
110
void
visit_statement_list (
tree_statement_list
&);
111
112
void
visit_switch_case (
tree_switch_case
&);
113
114
void
visit_switch_case_list (
tree_switch_case_list
&);
115
116
void
visit_switch_command (
tree_switch_command
&);
117
118
void
visit_try_catch_command (
tree_try_catch_command
&);
119
120
void
visit_unwind_protect_command (
tree_unwind_protect_command
&);
121
122
void
visit_while_command (
tree_while_command
&);
123
124
void
visit_do_until_command (
tree_do_until_command
&);
125
126
private
:
127
128
bool
do_lvalue_check
;
129
130
std::string
file_name
;
131
132
void
do_decl_command (
tree_decl_command
&);
133
134
void
gripe (
const
std::string& msg,
int
line
);
135
136
// No copying!
137
138
tree_checker
(
const
tree_checker
&);
139
140
tree_checker
&
operator =
(
const
tree_checker
&);
141
};
142
143
#endif
tree_switch_command
Definition:
pt-select.h:251
tree_statement
Definition:
pt-stmt.h:44
tree_switch_case
Definition:
pt-select.h:166
tree_identifier
Definition:
pt-id.h:42
tree_try_catch_command
Definition:
pt-except.h:37
tree_no_op_command
Definition:
pt-cmd.h:61
tree_checker::~tree_checker
~tree_checker(void)
Definition:
pt-check.h:40
tree_decl_elt
Definition:
pt-decl.h:41
tree_checker
Definition:
pt-check.h:32
octave_user_function
Definition:
ov-usr-fcn.h:174
pt-walk.h
tree_prefix_expression
Definition:
pt-unop.h:85
tree_decl_command::operator=
tree_decl_command & operator=(const tree_decl_command &)
tree_complex_for_command
Definition:
pt-loop.h:270
tree_multi_assignment
Definition:
pt-assign.h:112
line
Definition:
graphics.h:7274
tree_matrix
Definition:
pt-mat.h:42
tree_funcall
Definition:
pt-funcall.h:36
tree_unwind_protect_command
Definition:
pt-except.h:103
tree_simple_for_command
Definition:
pt-loop.h:174
tree_checker::tree_checker
tree_checker(void)
Definition:
pt-check.h:37
tree_constant
Definition:
pt-const.h:38
tree_binary_expression
Definition:
pt-binop.h:40
tree_parameter_list
Definition:
pt-misc.h:45
tree_return_command
Definition:
pt-jump.h:89
tree_statement_list
Definition:
pt-stmt.h:127
tree_if_command_list
Definition:
pt-select.h:88
tree_do_until_command
Definition:
pt-loop.h:136
tree_simple_assignment
Definition:
pt-assign.h:42
tree_walker
Definition:
pt-walk.h:87
tree_anon_fcn_handle
Definition:
pt-fcn-handle.h:89
tree_checker::do_lvalue_check
bool do_lvalue_check
Definition:
pt-check.h:128
tree_while_command
Definition:
pt-loop.h:43
tree_switch_case_list
Definition:
pt-select.h:218
tree_persistent_command
Definition:
pt-decl.h:214
tree_decl_command
Definition:
pt-decl.h:146
tree_colon_expression
Definition:
pt-colon.h:39
tree_fcn_handle
Definition:
pt-fcn-handle.h:43
tree_cell
Definition:
pt-cell.h:39
tree_break_command
Definition:
pt-jump.h:33
tree_global_command
Definition:
pt-decl.h:183
tree_postfix_expression
Definition:
pt-unop.h:125
tree_return_list
Definition:
pt-misc.h:112
octave_user_script
Definition:
ov-usr-fcn.h:83
tree_checker::file_name
std::string file_name
Definition:
pt-check.h:130
tree_function_def
Definition:
pt-cmd.h:101
tree_decl_init_list
Definition:
pt-decl.h:111
tree_index_expression
Definition:
pt-idx.h:44
tree_continue_command
Definition:
pt-jump.h:61
tree_if_clause
Definition:
pt-select.h:38
tree_if_command
Definition:
pt-select.h:121
tree_argument_list
Definition:
pt-arg-list.h:41
Generated on Thu Jun 4 2015 23:30:20 for GNU Octave by
1.8.8