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-except.cc
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
#ifdef HAVE_CONFIG_H
24
#include <config.h>
25
#endif
26
27
#include "
quit.h
"
28
29
#include "
error.h
"
30
#include "
oct-lvalue.h
"
31
#include "
ov.h
"
32
#include "
pt-bp.h
"
33
#include "
pt-cmd.h
"
34
#include "
pt-except.h
"
35
#include "
pt-exp.h
"
36
#include "
pt-id.h
"
37
#include "
pt-jump.h
"
38
#include "
pt-stmt.h
"
39
#include "
pt-walk.h
"
40
#include "
unwind-prot.h
"
41
#include "
variables.h
"
42
43
// Simple exception handling.
44
45
tree_try_catch_command::~tree_try_catch_command
(
void
)
46
{
47
delete
expr_id
;
48
delete
try_code
;
49
delete
catch_code
;
50
delete
lead_comm
;
51
delete
mid_comm
;
52
delete
trail_comm
;
53
}
54
55
tree_command
*
56
tree_try_catch_command::dup
(
symbol_table::scope_id
scope,
57
symbol_table::context_id
context
)
const
58
{
59
return
new
60
tree_try_catch_command
(
try_code
?
try_code
->
dup
(scope, context) : 0,
61
catch_code
?
catch_code
->
dup
(scope, context) : 0,
62
expr_id
?
expr_id
->
dup
(scope, context) : 0,
63
lead_comm
?
lead_comm
->
dup
() : 0,
64
mid_comm
?
mid_comm
->
dup
() : 0,
65
trail_comm
?
trail_comm
->
dup
() : 0,
66
line
(),
column
());
67
}
68
69
void
70
tree_try_catch_command::accept
(
tree_walker
& tw)
71
{
72
tw.
visit_try_catch_command
(*
this
);
73
}
74
75
// Simple exception handling.
76
77
tree_unwind_protect_command::~tree_unwind_protect_command
(
void
)
78
{
79
delete
unwind_protect_code
;
80
delete
cleanup_code
;
81
delete
lead_comm
;
82
delete
mid_comm
;
83
delete
trail_comm
;
84
}
85
86
tree_command
*
87
tree_unwind_protect_command::dup
(
symbol_table::scope_id
scope,
88
symbol_table::context_id
context
)
const
89
{
90
return
new
tree_unwind_protect_command
91
(
unwind_protect_code
?
unwind_protect_code
->
dup
(scope, context) : 0,
92
cleanup_code
?
cleanup_code
->
dup
(scope, context) : 0,
93
lead_comm
?
lead_comm
->
dup
() : 0,
94
mid_comm
?
mid_comm
->
dup
() : 0,
95
trail_comm
?
trail_comm
->
dup
() : 0,
96
line
(),
column
());
97
}
98
99
void
100
tree_unwind_protect_command::accept
(
tree_walker
& tw)
101
{
102
tw.
visit_unwind_protect_command
(*
this
);
103
}
Generated on Mon Dec 30 2013 03:04:38 for GNU Octave by
1.8.1.2