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-bp.h
Go to the documentation of this file.
1
/*
2
3
Copyright (C) 2001-2013 Ben Sapp
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_bp_h)
24
#define octave_pt_bp_h 1
25
26
#include "
input.h
"
27
#include "
ov-usr-fcn.h
"
28
#include "
pt-walk.h
"
29
#include "
pt-pr-code.h
"
30
#include "
toplev.h
"
31
32
class
tree
;
33
class
tree_decl_command
;
34
35
class
36
tree_breakpoint
:
public
tree_walker
37
{
38
public
:
39
40
enum
action
{
set
= 1,
clear
= 2, list = 3 };
41
42
tree_breakpoint
(
int
l,
action
a)
43
:
line
(l), act (a), found (false), bp_list () { }
44
45
~tree_breakpoint
(
void
) { }
46
47
bool
success
(
void
)
const
{
return
found; }
48
49
void
visit_argument_list (
tree_argument_list
&);
50
51
void
visit_binary_expression (
tree_binary_expression
&);
52
53
void
visit_break_command (
tree_break_command
&);
54
55
void
visit_colon_expression (
tree_colon_expression
&);
56
57
void
visit_continue_command (
tree_continue_command
&);
58
59
void
visit_global_command (
tree_global_command
&);
60
61
void
visit_persistent_command (
tree_persistent_command
&);
62
63
void
visit_decl_elt (
tree_decl_elt
&);
64
65
void
visit_decl_init_list (
tree_decl_init_list
&);
66
67
void
visit_while_command (
tree_while_command
&);
68
69
void
visit_do_until_command (
tree_do_until_command
&);
70
71
void
visit_simple_for_command (
tree_simple_for_command
&);
72
73
void
visit_complex_for_command (
tree_complex_for_command
&);
74
75
void
visit_octave_user_script (
octave_user_script
&);
76
77
void
visit_octave_user_function (
octave_user_function
&);
78
79
void
visit_octave_user_function_header (
octave_user_function
&);
80
81
void
visit_octave_user_function_trailer (
octave_user_function
&);
82
83
void
visit_function_def (
tree_function_def
&);
84
85
void
visit_identifier (
tree_identifier
&);
86
87
void
visit_if_clause (
tree_if_clause
&);
88
89
void
visit_if_command (
tree_if_command
&);
90
91
void
visit_if_command_list (
tree_if_command_list
&);
92
93
void
visit_index_expression (
tree_index_expression
&);
94
95
void
visit_matrix (
tree_matrix
&);
96
97
void
visit_cell (
tree_cell
&);
98
99
void
visit_multi_assignment (
tree_multi_assignment
&);
100
101
void
visit_no_op_command (
tree_no_op_command
&);
102
103
void
visit_anon_fcn_handle (
tree_anon_fcn_handle
&);
104
105
void
visit_constant (
tree_constant
&);
106
107
void
visit_fcn_handle (
tree_fcn_handle
&);
108
109
void
visit_parameter_list (
tree_parameter_list
&);
110
111
void
visit_postfix_expression (
tree_postfix_expression
&);
112
113
void
visit_prefix_expression (
tree_prefix_expression
&);
114
115
void
visit_return_command (
tree_return_command
&);
116
117
void
visit_return_list (
tree_return_list
&);
118
119
void
visit_simple_assignment (
tree_simple_assignment
&);
120
121
void
visit_statement (
tree_statement
&);
122
123
void
visit_statement_list (
tree_statement_list
&);
124
125
void
visit_switch_case (
tree_switch_case
&);
126
127
void
visit_switch_case_list (
tree_switch_case_list
&);
128
129
void
visit_switch_command (
tree_switch_command
&);
130
131
void
visit_try_catch_command (
tree_try_catch_command
&);
132
133
void
visit_unwind_protect_command (
tree_unwind_protect_command
&);
134
135
octave_value_list
get_list
(
void
) {
return
bp_list; }
136
137
int
get_line
(
void
) {
return
found ?
line
: 0; }
138
139
private
:
140
141
void
do_decl_command (
tree_decl_command
&);
142
143
void
take_action (
tree
& tr);
144
145
void
take_action (
tree_statement
& stmt);
146
147
// Statement line number we are looking for.
148
int
line
;
149
150
// What to do.
151
action
act
;
152
153
// Have we already found the line?
154
bool
found
;
155
156
// List of breakpoint line numbers.
157
octave_value_list
bp_list
;
158
159
// No copying!
160
161
tree_breakpoint
(
const
tree_breakpoint
&);
162
163
tree_breakpoint
&
operator =
(
const
tree_breakpoint
&);
164
};
165
166
// TRUE means SIGINT should put us in the debugger at the next
167
// available breakpoint.
168
extern
bool
octave_debug_on_interrupt_state
;
169
170
#endif
Generated on Mon Dec 30 2013 03:04:37 for GNU Octave by
1.8.1.2