CXXR (C++ R)
Main Page
Related Pages
Namespaces
Classes
Files
Examples
File List
File Members
current-release
src
include
CXXR
LoopBailout.hpp
Go to the documentation of this file.
1
/*CXXR $Id: LoopBailout.hpp 1348 2013-02-25 17:49:03Z arr $
2
*CXXR
3
*CXXR This file is part of CXXR, a project to refactor the R interpreter
4
*CXXR into C++. It may consist in whole or in part of program code and
5
*CXXR documentation taken from the R project itself, incorporated into
6
*CXXR CXXR (and possibly MODIFIED) under the terms of the GNU General Public
7
*CXXR Licence.
8
*CXXR
9
*CXXR CXXR is Copyright (C) 2008-13 Andrew R. Runnalls, subject to such other
10
*CXXR copyrights and copyright restrictions as may be stated below.
11
*CXXR
12
*CXXR CXXR is not part of the R project, and bugs and other issues should
13
*CXXR not be reported via r-bugs or other R project channels; instead refer
14
*CXXR to the CXXR website.
15
*CXXR */
16
17
/*
18
* R : A Computer Language for Statistical Data Analysis
19
*
20
* This program is free software; you can redistribute it and/or modify
21
* it under the terms of the GNU General Public License as published by
22
* the Free Software Foundation; either version 2.1 of the License, or
23
* (at your option) any later version.
24
*
25
* This program is distributed in the hope that it will be useful,
26
* but WITHOUT ANY WARRANTY; without even the implied warranty of
27
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
28
* GNU Lesser General Public License for more details.
29
*
30
* You should have received a copy of the GNU General Public License
31
* along with this program; if not, a copy is available at
32
* http://www.r-project.org/Licenses/
33
*/
34
40
#ifndef LOOPBAILOUT_HPP
41
#define LOOPBAILOUT_HPP 1
42
43
#include "
CXXR/Bailout.hpp
"
44
#include "
CXXR/Evaluator.h
"
45
46
namespace
CXXR {
47
class
Environment;
48
56
class
LoopBailout
:
public
Bailout
{
57
public
:
66
LoopBailout
(
Environment
* the_environment,
bool
next_iteration)
67
: m_environment(the_environment), m_next(next_iteration)
68
{}
69
75
Environment
*
environment
()
const
76
{
77
return
m_environment;
78
}
79
85
bool
next
()
const
86
{
87
return
m_next;
88
}
89
90
// Virtual function of Bailout:
91
void
throwException
();
92
93
// Virtual function of GCNode:
94
void
visitReferents
(const_visitor* v)
const
;
95
protected
:
96
// Virtual function of GCNode:
97
void
detachReferents
();
98
private
:
99
GCEdge<Environment>
m_environment;
100
bool
m_next;
101
102
// Declared private to ensure that LoopBailout objects are
103
// allocated only using 'new':
104
~
LoopBailout
() {}
105
106
// Not implemented. Declared to prevent compiler-generated versions:
107
LoopBailout
(
const
LoopBailout
&);
108
LoopBailout
& operator=(
const
LoopBailout
&);
109
};
110
}
111
112
#endif // LOOPBAILOUT_HPP
Generated by
1.8.1