spot
1.2.4
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Groups
Pages
ltlast
formula_tree.hh
Go to the documentation of this file.
1
// -*- coding: utf-8 -*-
2
// Copyright (C) 2009, 2012, 2013, 2014 Laboratoire de Recherche et
3
// Développement de l'Epita (LRDE).
4
//
5
// This file is part of Spot, a model checking library.
6
//
7
// Spot is free software; you can redistribute it and/or modify it
8
// under the terms of the GNU General Public License as published by
9
// the Free Software Foundation; either version 3 of the License, or
10
// (at your option) any later version.
11
//
12
// Spot is distributed in the hope that it will be useful, but WITHOUT
13
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14
// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
15
// License for more details.
16
//
17
// You should have received a copy of the GNU General Public License
18
// along with this program. If not, see <http://www.gnu.org/licenses/>.
19
22
#ifndef SPOT_LTLAST_FORMULA_TREE_HH
23
# define SPOT_LTLAST_FORMULA_TREE_HH
24
25
# include "
formula.hh
"
26
# include <vector>
27
# include <boost/shared_ptr.hpp>
28
# include "
multop.hh
"
29
# include "
binop.hh
"
30
# include "
unop.hh
"
31
# include "
nfa.hh
"
32
33
namespace
spot
34
{
35
namespace
ltl
36
{
38
namespace
formula_tree
39
{
40
// These struct should not need to be made public using
41
// SPOT_API, unfortunately dynamic_cast<> with g++-4.0.1 fails
42
// on Darwin if we do not.
43
struct
SPOT_API
node
44
{
45
virtual
~
node
() {};
46
};
48
typedef
boost::shared_ptr<node>
node_ptr
;
49
50
struct
SPOT_API
node_unop
:
node
51
{
52
unop::type op;
53
node_ptr
child;
54
};
55
struct
SPOT_API
node_binop
:
node
56
{
57
binop::type
op;
58
node_ptr
lhs;
59
node_ptr
rhs;
60
};
61
struct
SPOT_API
node_multop
:
node
62
{
63
multop::type op;
64
node_ptr
lhs;
65
node_ptr
rhs;
66
};
67
struct
SPOT_API
node_nfa
:
node
68
{
69
std::vector<node_ptr> children;
70
spot::ltl::nfa::ptr
nfa
;
71
};
73
enum
{ True = -1, False = -2 };
74
struct
SPOT_API
node_atomic
:
node
75
{
76
int
i;
77
};
78
81
const
formula
*
instanciate
(
const
node_ptr
np,
82
const
std::vector<const formula*>& v);
83
85
size_t
arity
(
const
node_ptr
np);
86
}
87
}
88
}
89
90
#endif // SPOT_LTLAST_FORMULA_TREE_HH_
Please direct any
question
,
comment
, or
bug report
to the Spot mailing list at
spot@lrde.epita.fr
.
Generated on Thu May 15 2014 11:04:11 for spot by
1.8.4