bddprint.hh 4.23 KB
Newer Older
1
// Copyright (C) 2003, 2004  Laboratoire d'Informatique de Paris 6 (LIP6),
Alexandre Duret-Lutz's avatar
Alexandre Duret-Lutz committed
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
// et Marie Curie.
//
// This file is part of Spot, a model checking library.
//
// Spot is free software; you can redistribute it and/or modify it
// under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// Spot is distributed in the hope that it will be useful, but WITHOUT
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
// or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
// License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Spot; see the file COPYING.  If not, write to the Free
// Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
// 02111-1307, USA.

22
23
24
#ifndef SPOT_TGBA_BDDPRINT_HH
# define SPOT_TGBA_BDDPRINT_HH

25
#include <string>
26
#include <iosfwd>
27
#include "bdddict.hh"
28
29
30
31
#include <bdd.h>

namespace spot
{
32

33
34
35
36
37
38
39
  /// \brief Print a BDD as a list of literals.
  ///
  /// This assumes that \a b is a conjunction of literals.
  /// \param os The output stream.
  /// \param dict The dictionary to use, to lookup variables.
  /// \param b The BDD to print.
  std::ostream& bdd_print_sat(std::ostream& os,
40
			      const bdd_dict* dict, bdd b);
41
42
43
44
45
46
47

  /// \brief Format a BDD as a list of literals.
  ///
  /// This assumes that \a b is a conjunction of literals.
  /// \param dict The dictionary to use, to lookup variables.
  /// \param b The BDD to print.
  /// \return The BDD formated as a string.
48
  std::string bdd_format_sat(const bdd_dict* dict, bdd b);
49

50
  /// \brief Print a BDD as a list of acceptance conditions.
51
52
  ///
  /// This is used when saving a TGBA.
53
54
  /// \param os The output stream.
  /// \param dict The dictionary to use, to lookup variables.
55
56
57
  /// \param b The BDD to print.
  /// \return The BDD formated as a string.
  std::ostream& bdd_print_acc(std::ostream& os,
58
			      const bdd_dict* dict, bdd b);
59

60
  /// \brief Print a BDD as a set of acceptance conditions.
61
62
63
64
65
66
67
68
69
  ///
  /// This is used when saving a TGBA.
  /// \param os The output stream.
  /// \param dict The dictionary to use, to lookup variables.
  /// \param b The BDD to print.
  /// \return The BDD formated as a string.
  std::ostream& bdd_print_accset(std::ostream& os,
				 const bdd_dict* dict, bdd b);

70
71
72
73
74
75
76
77
  /// \brief Format a BDD as a set of acceptance conditions.
  ///
  /// This is used when saving a TGBA.
  /// \param dict The dictionary to use, to lookup variables.
  /// \param b The BDD to print.
  /// \return The BDD formated as a string.
  std::string bdd_format_accset(const bdd_dict* dict, bdd b);

78
79
80
  /// \brief Print a BDD as a set.
  /// \param os The output stream.
  /// \param dict The dictionary to use, to lookup variables.
81
  /// \param b The BDD to print.
82
  std::ostream& bdd_print_set(std::ostream& os,
83
			      const bdd_dict* dict, bdd b);
84
85
  /// \brief Format a BDD as a set.
  /// \param dict The dictionary to use, to lookup variables.
86
  /// \param b The BDD to print.
87
  /// \return The BDD formated as a string.
88
  std::string bdd_format_set(const bdd_dict* dict, bdd b);
89

90
91
92
93
94
95
96
97
98
99
100
101
  /// \brief Print a BDD as a formula.
  /// \param os The output stream.
  /// \param dict The dictionary to use, to lookup variables.
  /// \param b The BDD to print.
  std::ostream& bdd_print_formula(std::ostream& os,
				  const bdd_dict* dict, bdd b);
  /// \brief Format a BDD as a formula.
  /// \param dict The dictionary to use, to lookup variables.
  /// \param b The BDD to print.
  /// \return The BDD formated as a string.
  std::string bdd_format_formula(const bdd_dict* dict, bdd b);

102
103
104
  /// \brief Print a BDD as a diagram in dotty format.
  /// \param os The output stream.
  /// \param dict The dictionary to use, to lookup variables.
105
  /// \param b The BDD to print.
106
  std::ostream& bdd_print_dot(std::ostream& os,
107
			      const bdd_dict* dict, bdd b);
108

109
110
111
  /// \brief Print a BDD as a table.
  /// \param os The output stream.
  /// \param dict The dictionary to use, to lookup variables.
112
  /// \param b The BDD to print.
113
  std::ostream& bdd_print_table(std::ostream& os,
114
				const bdd_dict* dict, bdd b);
115
116
117
118

}

#endif // SPOT_TGBA_BDDPRINT_HH