spot
1.1.4
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
tgba
tgbaunion.hh
Go to the documentation of this file.
1
// Copyright (C) 2009, 2011 Laboratoire de Recherche et Développement
2
// de l'Epita (LRDE).
3
//
4
// This file is part of Spot, a model checking library.
5
//
6
// Spot is free software; you can redistribute it and/or modify it
7
// under the terms of the GNU General Public License as published by
8
// the Free Software Foundation; either version 3 of the License, or
9
// (at your option) any later version.
10
//
11
// Spot is distributed in the hope that it will be useful, but WITHOUT
12
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13
// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
14
// License for more details.
15
//
16
// You should have received a copy of the GNU General Public License
17
// along with this program. If not, see <http://www.gnu.org/licenses/>.
18
19
#ifndef SPOT_TGBA_TGBAUNION_HH
20
# define SPOT_TGBA_TGBAUNION_HH
21
22
#include "
tgba.hh
"
23
24
namespace
spot
25
{
35
class
state_union
:
public
state
36
{
37
public
:
43
state_union
(
state
*
left
,
state
*
right
)
44
:
left_
(left),
45
right_
(right)
46
{
47
}
48
50
state_union
(
const
state_union
& o);
51
52
virtual
~state_union
();
53
54
state
*
55
left
()
const
56
{
57
return
left_
;
58
}
59
60
state
*
61
right
()
const
62
{
63
return
right_
;
64
}
65
66
virtual
int
compare
(
const
state
* other)
const
;
67
virtual
size_t
hash
()
const
;
68
virtual
state_union
*
clone
()
const
;
69
70
private
:
71
state
*
left_
;
72
state
*
right_
;
74
};
76
78
class
tgba_succ_iterator_union
:
public
tgba_succ_iterator
79
{
80
public
:
81
tgba_succ_iterator_union
(
tgba_succ_iterator
* left,
82
tgba_succ_iterator
* right,
83
bdd left_missing,
84
bdd right_missing, bdd left_var, bdd right_var);
85
86
virtual
~tgba_succ_iterator_union
();
87
88
// iteration
89
void
first
();
90
void
next
();
91
bool
done
()
const
;
92
93
// inspection
94
state_union
*
current_state
()
const
;
95
bdd
current_condition
()
const
;
96
bdd
current_acceptance_conditions
()
const
;
97
98
protected
:
99
tgba_succ_iterator
*
left_
;
100
tgba_succ_iterator
*
right_
;
101
bdd
current_cond_
;
102
bdd
left_missing_
;
103
bdd
right_missing_
;
104
bdd
left_neg_
;
105
bdd
right_neg_
;
106
friend
class
tgba_union
;
107
};
108
110
class
tgba_union
:
public
tgba
111
{
112
public
:
116
tgba_union
(
const
tgba
* left,
const
tgba
* right);
117
118
virtual
~tgba_union
();
119
120
virtual
state
*
get_init_state
()
const
;
121
122
virtual
tgba_succ_iterator_union
*
123
succ_iter
(
const
state
* local_state,
124
const
state
* global_state = 0,
125
const
tgba
* global_automaton = 0)
const
;
126
127
virtual
bdd_dict
*
get_dict
()
const
;
128
129
virtual
std::string
format_state
(
const
state
*
state
)
const
;
130
131
virtual
state*
project_state
(
const
state* s,
const
tgba
* t)
const
;
132
133
virtual
bdd
all_acceptance_conditions
()
const
;
134
virtual
bdd
neg_acceptance_conditions
()
const
;
135
136
protected
:
137
virtual
bdd
compute_support_conditions
(
const
state* state)
const
;
138
virtual
bdd
compute_support_variables
(
const
state* state)
const
;
139
140
private
:
141
bdd_dict
*
dict_
;
142
const
tgba
*
left_
;
143
const
tgba
*
right_
;
144
bdd
left_acc_missing_
;
145
bdd
right_acc_missing_
;
146
bdd
left_acc_complement_
;
147
bdd
right_acc_complement_
;
148
bdd
left_var_missing_
;
149
bdd
right_var_missing_
;
150
bdd
all_acceptance_conditions_
;
151
bdd
neg_acceptance_conditions_
;
152
bddPair*
right_common_acc_
;
153
// Disallow copy.
154
tgba_union
(
const
tgba_union
&);
155
tgba_union
&
operator=
(
const
tgba_union
&);
156
};
157
158
159
}
160
161
#endif // SPOT_TGBA_TGBAUNION_HH
Please direct any
question
,
comment
, or
bug report
to the Spot mailing list at
spot@lrde.epita.fr
.
Generated on Mon Jul 29 2013 00:27:25 for spot by
1.8.4