spot
0.9.2
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 2 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 Spot; see the file COPYING. If not, write to the Free
18
// Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
19
// 02111-1307, USA.
20
21
#ifndef SPOT_TGBA_TGBAUNION_HH
22
# define SPOT_TGBA_TGBAUNION_HH
23
24
#include "
tgba.hh
"
25
26
namespace
spot
27
{
37
class
state_union
:
public
state
38
{
39
public
:
45
state_union
(
state
*
left
,
state
*
right
)
46
:
left_
(left),
47
right_
(right)
48
{
49
}
50
52
state_union
(
const
state_union
& o);
53
54
virtual
~state_union
();
55
56
state
*
57
left
()
const
58
{
59
return
left_
;
60
}
61
62
state
*
63
right
()
const
64
{
65
return
right_
;
66
}
67
68
virtual
int
compare
(
const
state
* other)
const
;
69
virtual
size_t
hash
()
const
;
70
virtual
state_union
*
clone
()
const
;
71
72
private
:
73
state
*
left_
;
74
75
state
*
right_
;
76
77
};
78
80
class
tgba_succ_iterator_union
:
public
tgba_succ_iterator
81
{
82
public
:
83
tgba_succ_iterator_union
(
tgba_succ_iterator
* left,
84
tgba_succ_iterator
* right,
85
bdd left_missing,
86
bdd right_missing, bdd left_var, bdd right_var);
87
88
virtual
~tgba_succ_iterator_union
();
89
90
// iteration
91
void
first
();
92
void
next
();
93
bool
done
()
const
;
94
95
// inspection
96
state_union
*
current_state
()
const
;
97
bdd
current_condition
()
const
;
98
bdd
current_acceptance_conditions
()
const
;
99
100
protected
:
101
tgba_succ_iterator
*
left_
;
102
tgba_succ_iterator
*
right_
;
103
bdd
current_cond_
;
104
bdd
left_missing_
;
105
bdd
right_missing_
;
106
bdd
left_neg_
;
107
bdd
right_neg_
;
108
friend
class
tgba_union
;
109
};
110
112
class
tgba_union
:
public
tgba
113
{
114
public
:
118
tgba_union
(
const
tgba
* left,
const
tgba
* right);
119
120
virtual
~tgba_union
();
121
122
virtual
state
*
get_init_state
()
const
;
123
124
virtual
tgba_succ_iterator_union
*
125
succ_iter
(
const
state
* local_state,
126
const
state
* global_state = 0,
127
const
tgba
* global_automaton = 0)
const
;
128
129
virtual
bdd_dict
*
get_dict
()
const
;
130
131
virtual
std::string
format_state
(
const
state
*
state
)
const
;
132
133
virtual
state*
project_state
(
const
state* s,
const
tgba
* t)
const
;
134
135
virtual
bdd
all_acceptance_conditions
()
const
;
136
virtual
bdd
neg_acceptance_conditions
()
const
;
137
138
protected
:
139
virtual
bdd
compute_support_conditions
(
const
state* state)
const
;
140
virtual
bdd
compute_support_variables
(
const
state* state)
const
;
141
142
private
:
143
bdd_dict
*
dict_
;
144
const
tgba
*
left_
;
145
const
tgba
*
right_
;
146
bdd
left_acc_missing_
;
147
bdd
right_acc_missing_
;
148
bdd
left_acc_complement_
;
149
bdd
right_acc_complement_
;
150
bdd
left_var_missing_
;
151
bdd
right_var_missing_
;
152
bdd
all_acceptance_conditions_
;
153
bdd
neg_acceptance_conditions_
;
154
bddPair*
right_common_acc_
;
155
// Disallow copy.
156
tgba_union
(
const
tgba_union
&);
157
tgba_union
&
operator=
(
const
tgba_union
&);
158
};
159
160
161
}
162
163
#endif // SPOT_TGBA_TGBAUNION_HH
Please
comment
this page and
report errors
about it on
the RefDocComments page
.
Generated on Mon Jul 2 2012 17:35:47 for spot by
1.8.1.1