Import of lbtt 1.0.3

This commit is contained in:
Alexandre Duret-Lutz 2004-02-16 11:35:59 +00:00
parent 06226f3227
commit 15618b84ea
68 changed files with 3988 additions and 3257 deletions

View file

@ -1,3 +1,70 @@
2004-02-13 Heikki Tauriainen <heikki.tauriainen@hut.fi>
* src/BitArray.{h,cc}, src/BuchiAutomaton.{h,cc},
src/Configuration.{h,cc}, src/DispUtil.{h,cc},
src/ExternalTranslator.{h,cc}, src/FormulaRandomizer.{h,cc},
src/LtlFormula.{h,cc}, src/NeverClaimAutomaton.{h,cc},
src/PathEvaluator.{h,cc}, src/PathIterator.{h,cc},
src/ProductAutomaton.{h,cc}, src/SpinWrapper.{h,cc},
src/StatDisplay.{h,cc}, src/StateSpace.{h,cc},
src/StateSpaceRandomizer.{h,cc}, src/StringUtil.{h,cc},
src/TestOperations.{h,cc}, src/TestStatistics.{h,cc},
src/translate.{h,cc}, src/UserCommandReader.{h,cc},
src/UserCommands.{h,cc}: Remove all #pragmas.
2004-02-12 Heikki Tauriainen <heikki.tauriainen@hut.fi>
* doc/texinfo.tex: New upstream version.
* doc/lbtt.texi: Update edition to 1.0.2.
Remove node names with commands to fix dvi file generation.
Move the node about the lbtt-translate utility to correct menu.
Reformat the automata file format section to avoid overfull lines
in dvi generation.
Fix description of the Algorithm block used with lbtt-translate.
* doc/testprocedure.txt, doc/intersectioncheck.txt: Add initial
newlines.
2004-02-11 Heikki Tauriainen <heikki.tauriainen@hut.fi>
* src/UserCommandReader.cc [HAVE_ISATTY]: Include the unistd.h
header.
(executeUserCommands) Stop waiting for new commands if an EOF is
detected. [HAVE_ISATTY]: If standard input is not connected to a
terminal, echo the input line.
2004-02-10 Heikki Tauriainen <heikki.tauriainen@hut.fi>
* configure.ac: Remove duplicate checks for headers.
(GLIBC_OBSTACK_WORKAROUND): New config.h macro for checking for a
version of the obstack.h header that requires a workaround to be
compiled with g++.
Add check for the `isatty' library function.
Include the stdio.h header when testing for readline libraries.
* src/Alloc.h: Rename to LbttAlloc.h to avoid a name conflict with
system header files on Darwin.
[GLIBC_OBSTACK_WORKAROUND] (__INT_TO_PTR): Redefine macro to
work around a C++ bug in the obstack.h header file in glibc 2.3.2.
Thanks to Alexandre Duret-Lutz for the original patch.
* src/BuchiAutomaton.h, src/Configuration.h, src/DispUtil.cc,
src/ExternalTranslator.h, src/FormulaRandomizer.h, src/Graph.h.in,
src/LtlFormula.h, src/main.cc, src/Makefile.am,
src/NeverClaimAutomaton.h, src/PathEvaluator.h,
src/ProductAutomaton.h, src/SccIterator.h, src/SharedTestData.h,
src/StatDisplay.h, src/StateSpace.h, src/StateSpaceRandomizer.cc,
src/StringUtil.h, src/TestOperations.h, src/TestRoundInfo.h,
src/TestStatistics.h, src/UserCommandReader.h,
src/UserCommands.h: Adjust includes.
* Update copyright information in source files.
2003-07-04 Alexandre Duret-Lutz <aduret@src.lip6.fr>
* src/Config-parse.yy: Remove stray `,' in %token arguments.
2003-07-18 Heikki Tauriainen <heikki.tauriainen@hut.fi> 2003-07-18 Heikki Tauriainen <heikki.tauriainen@hut.fi>
* UserCommands.cc (printAutomatonAnalysisResults): Ensure that * UserCommands.cc (printAutomatonAnalysisResults): Ensure that
@ -7,7 +74,7 @@
state of the witness. state of the witness.
* Version 1.0.2 released. * Version 1.0.2 released.
2003-07-17 Heikki Tauriainen <heikki.tauriainen@hut.fi> 2003-07-17 Heikki Tauriainen <heikki.tauriainen@hut.fi>
* NeverClaimAutomaton.cc (ParseErrorException::ParseErrorException): * NeverClaimAutomaton.cc (ParseErrorException::ParseErrorException):
@ -19,17 +86,17 @@
in previous releases.) in previous releases.)
2002-11-04 Heikki Tauriainen <heikki.tauriainen@hut.fi> 2002-11-04 Heikki Tauriainen <heikki.tauriainen@hut.fi>
* StatDisplay.cc (printCollectiveStats): If using more than five * StatDisplay.cc (printCollectiveStats): If using more than five
formula operators (but the total number of operators is not formula operators (but the total number of operators is not
a multiple of 5), insert an empty line in the output before the a multiple of 5), insert an empty line in the output before the
last row of the operator distribution table. last row of the operator distribution table.
2002-10-21 Heikki Tauriainen <heikki.tauriainen@hut.fi> 2002-10-21 Heikki Tauriainen <heikki.tauriainen@hut.fi>
* BitArray.cc (BitArray::find): Fix bug in testing whether * BitArray.cc (BitArray::find): Fix bug in testing whether
all accessed bytes were zero. all accessed bytes were zero.
2002-10-01 Heikki Tauriainen <heikki.tauriainen@hut.fi> 2002-10-01 Heikki Tauriainen <heikki.tauriainen@hut.fi>
* Version 1.0.1 released. * Version 1.0.1 released.
@ -38,21 +105,21 @@
* Alloc.h: Use preprocessor macro HAVE_SINGLE_CLIENT_ALLOC * Alloc.h: Use preprocessor macro HAVE_SINGLE_CLIENT_ALLOC
instead of HAVE_SGI_STL in #ifdef conditionals. instead of HAVE_SGI_STL in #ifdef conditionals.
* BitArray.cc (BitArray::BitArray): Do not clear the allocated * BitArray.cc (BitArray::BitArray): Do not clear the allocated
array after initialization. All callers updated to reflect the array after initialization. All callers updated to reflect the
changed constructor semantics. changed constructor semantics.
* BitArray.cc (BitArray::bitwiseAnd, BitArray::bitwiseOr) * BitArray.cc (BitArray::bitwiseAnd, BitArray::bitwiseOr)
(BitArray::bitwiseXor): New functions. (BitArray::bitwiseXor): New functions.
* BitArray.cc (BitArray::equal, BitArray::subset) * BitArray.cc (BitArray::equal, BitArray::subset)
(BitArray::count): Fix `&' operator precedence in comparisons. (BitArray::count): Fix `&' operator precedence in comparisons.
* BitArray.cc (BitArray::hammingDistance): Use the `bit_counts' * BitArray.cc (BitArray::hammingDistance): Use the `bit_counts'
array to compute the result instead of scanning the array bit by array to compute the result instead of scanning the array bit by
bit. bit.
* BitArray.cc: Documentation fixes. * BitArray.cc: Documentation fixes.
* BitArray.h (BitArray::bitwiseAnd, BitArray::bitwiseOr) * BitArray.h (BitArray::bitwiseAnd, BitArray::bitwiseOr)
@ -76,7 +143,7 @@
* BuchiAutomaton.cc: Documentation fixes. * BuchiAutomaton.cc: Documentation fixes.
* BuchiAutomaton.h (BuchiAutomaton::regularize): Changed * BuchiAutomaton.h (BuchiAutomaton::regularize): Changed
semantics (see above). semantics (see above).
* BuchiAutomaton.h * BuchiAutomaton.h
@ -108,14 +175,14 @@
preprocessor macro SLIST_NAMESPACE. preprocessor macro SLIST_NAMESPACE.
* EdgeContainer.h: Remove uses of redundant preprocessor macros. * EdgeContainer.h: Remove uses of redundant preprocessor macros.
* Graph.h: Renamed to Graph.h.in to implement the optional * Graph.h: Renamed to Graph.h.in to implement the optional
inclusion of the slist header using an autoconf substitution inclusion of the slist header using an autoconf substitution
variable. variable.
* Graph.h.in: Use HAVE_SLIST macro instead of HAVE_SGI_STL in * Graph.h.in: Use HAVE_SLIST macro instead of HAVE_SGI_STL in
#ifdef conditionals. #ifdef conditionals.
* Graph.h.in (Graph::Edge, Graph::Node): Make classes public (to * Graph.h.in (Graph::Edge, Graph::Node): Make classes public (to
prevent warnings from Intel C++ Compiler). prevent warnings from Intel C++ Compiler).
@ -172,7 +239,7 @@
* src/Makefile.am: Remove redundant references to @LEXLIB@ (the * src/Makefile.am: Remove redundant references to @LEXLIB@ (the
sources are independent of any external lexer library). sources are independent of any external lexer library).
* NeverClaimAutomaton.cc (NeverClaimAutomaton::write): Add * NeverClaimAutomaton.cc (NeverClaimAutomaton::write): Add
detection for jumps to undefined never claim labels. detection for jumps to undefined never claim labels.
@ -185,7 +252,7 @@
* ProductAutomaton.cc (ProductAutomaton::computeProduct): * ProductAutomaton.cc (ProductAutomaton::computeProduct):
Avoid creating a temporary Bitset object when checking the Avoid creating a temporary Bitset object when checking the
enabledness of a product transition. enabledness of a product transition.
* ProductAutomaton.cc (ProductAutomaton::findAcceptingExecution) * ProductAutomaton.cc (ProductAutomaton::findAcceptingExecution)
Use BitArrays instead of Bitsets. Use BitArrays instead of Bitsets.
@ -211,12 +278,12 @@
* TestOperations.cc (performEmptinessCheck): Added a colon to * TestOperations.cc (performEmptinessCheck): Added a colon to
the end of the "Accepting cycles" message. the end of the "Accepting cycles" message.
* TestRoundInfo.h: Removed redundant inclusion of BitArray.h. * TestRoundInfo.h: Removed redundant inclusion of BitArray.h.
* translate.cc (main): Use autoconf-generated PACKAGE_VERSION * translate.cc (main): Use autoconf-generated PACKAGE_VERSION
macro for displaying program version. macro for displaying program version.
* translate.cc (main): Fix bug in checking the number of * translate.cc (main): Fix bug in checking the number of
command line arguments. command line arguments.
@ -227,7 +294,7 @@
against the internal model checking algorithm). against the internal model checking algorithm).
* version.h.in: Removed. * version.h.in: Removed.
2001-11-12 Heikki Tauriainen <heikki.tauriainen@hut.fi> 2001-11-12 Heikki Tauriainen <heikki.tauriainen@hut.fi>
* Version 1.0.0 released. * Version 1.0.0 released.

View file

@ -1,5 +1,5 @@
lbtt NEWS -- history of user-visible changes. 18 Jul 2003 lbtt NEWS -- history of user-visible changes. 13 Feb 2004
Copyright (C) 2003 Heikki Tauriainen Copyright (C) 2004 Heikki Tauriainen
Permission is granted to anyone to make or distribute verbatim copies Permission is granted to anyone to make or distribute verbatim copies
of this document as received, in any medium, provided that the of this document as received, in any medium, provided that the
@ -12,6 +12,14 @@ Copyright (C) 2003 Heikki Tauriainen
Please send bug reports to <heikki.tauriainen@hut.fi>. Please send bug reports to <heikki.tauriainen@hut.fi>.
Version 1.0.3
* This release fixes several compilation issues with GNU libc 2.3.2
and Darwin, and documentation generation in dvi format. A problem
with reading user commands from a source that is not a terminal was
also fixed. Many thanks to Alexandre Duret-Lutz for patches and
useful suggestions.
Version 1.0.2 Version 1.0.2
* Bug fix release. * Bug fix release.

View file

@ -1,4 +1,4 @@
lbtt version 1.0.2 lbtt version 1.0.3
------------------ ------------------
lbtt is a tool for testing programs that translate formulas lbtt is a tool for testing programs that translate formulas

View file

@ -1,8 +1,8 @@
# Process this file with autoconf to produce a configure script. # Process this file with autoconf to produce a configure script.
AC_PREREQ([2.53]) AC_PREREQ([2.53])
AC_INIT([lbtt], [1.0.2], [heikki.tauriainen@hut.fi]) AC_INIT([lbtt], [1.0.3], [heikki.tauriainen@hut.fi])
AC_REVISION([Revision: 1.2]) AC_REVISION([Revision: 1.3])
AC_CONFIG_SRCDIR([src/main.cc]) AC_CONFIG_SRCDIR([src/main.cc])
AM_INIT_AUTOMAKE AM_INIT_AUTOMAKE
AM_CONFIG_HEADER([config.h]) AM_CONFIG_HEADER([config.h])
@ -37,7 +37,7 @@ AC_ARG_WITH([readline],
# Check for the availability of headers. # Check for the availability of headers.
AC_HEADER_STDC AC_HEADER_STDC
AC_CHECK_HEADERS([fcntl.h obstack.h stdlib.h unistd.h]) AC_CHECK_HEADERS([fcntl.h])
# Check for the availability of the GNU readline headers. # Check for the availability of the GNU readline headers.
@ -51,6 +51,22 @@ fi
AC_LANG([C++]) AC_LANG([C++])
# Check for the availability of the obstack.h header. GNU libc 2.3.2 includes a
# version of this header that cannot be compiled using g++; enable a workaround
# if necessary.
AC_CHECK_HEADERS([obstack.h],
[AC_MSG_CHECKING([whether obstack.h compilation workaround is needed])
AC_TRY_COMPILE([#include <obstack.h>],
[#if __GLIBC__ == 2 && __GLIBC_MINOR__ == 3
obstack_alloc(0, 0);
#endif],
[AC_MSG_RESULT([no])],
[AC_MSG_RESULT([yes])
AC_DEFINE([GLIBC_OBSTACK_WORKAROUND],
[1],
[Define to 1 to enable an obstack.h C++ compilation workaround for GNU libc 2.3.])])])
# Check for the availablility of the sstream or strstream header. # Check for the availablility of the sstream or strstream header.
AC_CHECK_HEADERS([sstream], AC_CHECK_HEADERS([sstream],
@ -131,11 +147,11 @@ AC_C_INLINE
# Checks for library functions. # Checks for library functions.
AC_TYPE_SIGNAL AC_TYPE_SIGNAL
AC_CHECK_FUNCS([mkdir strchr strtod strtol strtoul getopt_long]) AC_CHECK_FUNCS([mkdir strchr strtod strtol strtoul getopt_long isatty])
if test x"${ac_cv_func_getopt_long}" = xno; then if test x"${ac_cv_func_getopt_long}" = xno; then
AC_LIBOBJ([getopt]) AC_LIBOBJ([getopt])
AC_LIBOBJ([getopt1]) AC_LIBOBJ([getopt1])
AC_CHECK_HEADERS([libintl.h string.h strings.h]) AC_CHECK_HEADERS([libintl.h])
AC_CHECK_FUNCS([memset]) AC_CHECK_FUNCS([memset])
fi fi
@ -147,7 +163,8 @@ if test "${readline}" = yes; then
for READLINELIBS in "-lreadline" "-lreadline -lcurses" "-lreadline -ltermcap" error; do for READLINELIBS in "-lreadline" "-lreadline -lcurses" "-lreadline -ltermcap" error; do
if test "${READLINELIBS}" != error; then if test "${READLINELIBS}" != error; then
LIBS="${oldlibs} ${READLINELIBS}" LIBS="${oldlibs} ${READLINELIBS}"
AC_TRY_LINK([#include <${rl_history_h}> AC_TRY_LINK([#include <stdio.h>
#include <${rl_history_h}>
#include <${rl_readline_h}>], #include <${rl_readline_h}>],
[using_history(); readline(""); add_history("");], [using_history(); readline(""); add_history("");],
[break]) [break])

View file

@ -1,3 +1,4 @@
,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,
: LTL formula `f' :_____ : Negated LTL formula `!f' : : LTL formula `f' :_____ : Negated LTL formula `!f' :
'''''''T''''''T'''' \ ___'''''''T'''''''''''T'''''''' '''''''T''''''T'''' \ ___'''''''T'''''''''''T''''''''

View file

@ -1,7 +1,7 @@
\input texinfo @c -*-texinfo-*- \input texinfo @c -*-texinfo-*-
@c %**start of header @c %**start of header
@setfilename lbtt.info @setfilename lbtt.info
@settitle @command{lbtt} @settitle @command{lbtt}
@afourpaper @afourpaper
@c %**end of header @c %**end of header
@ -13,8 +13,8 @@
@end ifhtml @end ifhtml
This file documents how to use the LTL-to-B@"uchi This file documents how to use the LTL-to-B@"uchi
translator testbench @command{lbtt}. translator testbench @command{lbtt}.
Copyright @copyright{} 2003 Heikki Tauriainen Copyright @copyright{} 2004 Heikki Tauriainen
@ifinfo @ifinfo
@email{heikki.tauriainen@@hut.fi} @email{heikki.tauriainen@@hut.fi}
@end ifinfo @end ifinfo
@ -24,7 +24,7 @@ Copyright @copyright{} 2003 Heikki Tauriainen
@end ifnothtml @end ifnothtml
@end ifnotinfo @end ifnotinfo
@ifhtml @ifhtml
@html @html
<blockquote> <blockquote>
@end html @end html
@ -32,7 +32,7 @@ Copyright @copyright{} 2003 Heikki Tauriainen
Permission is granted to make and distribute verbatim Permission is granted to make and distribute verbatim
copies of this manual provided the copyright notice and copies of this manual provided the copyright notice and
this permission notice are preserved on all copies. this permission notice are preserved on all copies.
@ignore @ignore
Permission is granted to process this file through TeX Permission is granted to process this file through TeX
and print the results, provided the printed document and print the results, provided the printed document
@ -48,7 +48,7 @@ entitled ``GNU General Public License'' is included exactly
as in the original, and provided that the entire resulting as in the original, and provided that the entire resulting
derived work is distributed under the terms of a derived work is distributed under the terms of a
permission notice identical to this one. permission notice identical to this one.
Permission is granted to copy and distribute Permission is granted to copy and distribute
translations of this manual into another language, translations of this manual into another language,
under the above conditions for modified versions. under the above conditions for modified versions.
@ -68,7 +68,7 @@ under the above conditions for modified versions.
@author Heikki Tauriainen <@email{heikki.tauriainen@@hut.fi}> @author Heikki Tauriainen <@email{heikki.tauriainen@@hut.fi}>
@page @page
@vskip 0pt plus 1filll @vskip 0pt plus 1filll
Copyright @copyright{} 2003 Heikki Tauriainen Copyright @copyright{} 2004 Heikki Tauriainen
<@email{heikki.tauriainen@@hut.fi}> <@email{heikki.tauriainen@@hut.fi}>
The latest version of this manual can be obtained from@* The latest version of this manual can be obtained from@*
@ -77,7 +77,7 @@ The latest version of this manual can be obtained from@*
Permission is granted to make and distribute verbatim Permission is granted to make and distribute verbatim
copies of this manual provided the copyright notice and copies of this manual provided the copyright notice and
this permission notice are preserved on all copies. this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified Permission is granted to copy and distribute modified
versions of this manual under the conditions for versions of this manual under the conditions for
verbatim copying, provided also that the section verbatim copying, provided also that the section
@ -86,7 +86,7 @@ is included exactly as in the original, and provided
that the entire resulting derived work is distributed that the entire resulting derived work is distributed
under the terms of a permission notice identical to this under the terms of a permission notice identical to this
one. one.
Permission is granted to copy and distribute Permission is granted to copy and distribute
translations of this manual into another language, translations of this manual into another language,
under the above conditions for modified versions. under the above conditions for modified versions.
@ -103,7 +103,7 @@ under the above conditions for modified versions.
for translating propositional linear temporal logic formulas into for translating propositional linear temporal logic formulas into
B@"uchi automata. B@"uchi automata.
This is edition 1.0.1 of the @command{lbtt} documentation. This edition This is edition 1.0.2 of the @command{lbtt} documentation. This edition
applies to @command{lbtt} versions 1.0.x. applies to @command{lbtt} versions 1.0.x.
@command{lbtt} is free software, you may change and redistribute it @command{lbtt} is free software, you may change and redistribute it
@ -122,10 +122,8 @@ comes with NO WARRANTY. See @ref{Copying} for details.
* Analyzing test results:: Working with @command{lbtt}'s internal * Analyzing test results:: Working with @command{lbtt}'s internal
commands. commands.
* Interfacing with @command{lbtt}:: Interfacing LTL-to-B@"uchi translators * Interfacing with lbtt:: Interfacing LTL-to-B@"uchi translators
with @command{lbtt}. with @command{lbtt}.
* The @command{lbtt-translate} utility:: An interface for two LTL-to-B@"uchi
translators.
* References:: List of references. * References:: List of references.
@ -271,7 +269,7 @@ for more information.
formulas in the same state space using formulas in the same state space using
an LTL-to-B@"uchi translator should an LTL-to-B@"uchi translator should
give consistent results. give consistent results.
* B@"uchi automata intersection emptiness check:: * Automata intersection emptiness check::
The intersection of the languages The intersection of the languages
accepted by two B@"uchi automata accepted by two B@"uchi automata
constructed from two complementary constructed from two complementary
@ -811,7 +809,7 @@ $$
@end ifnottex @end ifnottex
@noindent @noindent
where where
@iftex @iftex
@tex @tex
$\it{op}'$ $\it{op}'$
@ -1129,16 +1127,9 @@ and the model checking result consistency check
on the model checking results, and reports all detected failures. on the model checking results, and reports all detected failures.
The B@"uchi automata intersection emptiness check The B@"uchi automata intersection emptiness check
@ifnottex (@pxref{Automata intersection emptiness check}) operates as follows (note that
(@pxref{B@"uchi automata intersection emptiness check}) the LTL-to-B@"uchi translation phase is repeated in this figure only for
@end ifnottex completeness; in reality, @command{lbtt} performs this phase only once):
@iftex
(@pxref{Automata intersection emptiness check})
@end iftex
operates as follows
(note that the LTL-to-B@"uchi translation phase is repeated in this figure
only for completeness; in reality, @command{lbtt} performs this phase only
once):
@ifhtml @ifhtml
@* @*
@end ifhtml @end ifhtml
@ -1207,7 +1198,7 @@ providing an additional implementation to include in the tests.
@node Model checking result consistency check, B@"uchi automata intersection emptiness check, Model checking result cross-comparison test, Test methods @node Model checking result consistency check, Automata intersection emptiness check, Model checking result cross-comparison test, Test methods
@section Model checking result consistency check @section Model checking result consistency check
@cindex model checking result consistency check @cindex model checking result consistency check
@ -1217,7 +1208,7 @@ LTL model checking tells whether any of the infinite paths starting from some
state of a state space satisfies a given LTL formula. If there state of a state space satisfies a given LTL formula. If there
are no such paths beginning from the state, it follows that all infinite paths are no such paths beginning from the state, it follows that all infinite paths
beginning from the state must then satisfy the @emph{negation} of the same beginning from the state must then satisfy the @emph{negation} of the same
formula. Since all state spaces used by @command{lbtt} always have at least formula. Since all state spaces used by @command{lbtt} always have at least
one path beginning from each state of the state space (guaranteed by the one path beginning from each state of the state space (guaranteed by the
state space generation algorithms), at least state space generation algorithms), at least
one path beginning from any state must satisfy either the formula or its one path beginning from any state must satisfy either the formula or its
@ -1245,9 +1236,8 @@ section.
@end iftex @end iftex
@node B@"uchi automata intersection emptiness check, , Model checking result consistency check, Test methods @node Automata intersection emptiness check, , Model checking result consistency check, Test methods
@section B@"uchi automata intersection emptiness check @section Automata intersection emptiness check
@anchor{Automata intersection emptiness check}
@cindex B@"uchi automata intersection emptiness check @cindex B@"uchi automata intersection emptiness check
@cindex tests, B@"uchi automata intersection emptiness check @cindex tests, B@"uchi automata intersection emptiness check
@ -1361,21 +1351,21 @@ section specifying an LTL-to-B@"uchi translator. The other sections
are optional and can be used to override the default testing parameters. are optional and can be used to override the default testing parameters.
@menu @menu
* @samp{Algorithm} section:: Each LTL-to-B@"uchi translator to be * Algorithm section:: Each LTL-to-B@"uchi translator to be
tested requires a separate tested requires a separate
@samp{Algorithm} section in the @samp{Algorithm} section in the
configuration file. configuration file.
* @samp{GlobalOptions} section:: Options for changing the general * GlobalOptions section:: Options for changing the general
behavior of @command{lbtt}. behavior of @command{lbtt}.
* @samp{FormulaOptions} section:: Options controlling the way random * FormulaOptions section:: Options controlling the way random
LTL formulas are generated. LTL formulas are generated.
* @samp{StateSpaceOptions} section:: Options controlling the way random * StateSpaceOptions section:: Options controlling the way random
state spaces are generated. state spaces are generated.
* Sample configuration file:: An example of a configuration file. * Sample configuration file:: An example of a configuration file.
@end menu @end menu
@node @samp{Algorithm} section, @samp{GlobalOptions} section, Configuration file, Configuration file @node Algorithm section, GlobalOptions section, Configuration file, Configuration file
@subsection The @samp{Algorithm} section @subsection The @samp{Algorithm} section
@cindex configuration file, @samp{Algorithm} section @cindex configuration file, @samp{Algorithm} section
@ -1439,7 +1429,7 @@ which is used to run the translator.
@node @samp{GlobalOptions} section, @samp{FormulaOptions} section, @samp{Algorithm} section, Configuration file @node GlobalOptions section, FormulaOptions section, Algorithm section, Configuration file
@subsection The @samp{GlobalOptions} section @subsection The @samp{GlobalOptions} section
@cindex configuration file, @samp{GlobalOption} section @cindex configuration file, @samp{GlobalOption} section
@ -1488,14 +1478,8 @@ The default value for this option is @samp{Always}.
@findex IntersectionCheck @r{[}GlobalOptions@r{]} @findex IntersectionCheck @r{[}GlobalOptions@r{]}
@findex IntersectionTest @r{[}GlobalOptions@r{]} @findex IntersectionTest @r{[}GlobalOptions@r{]}
This option can be used to enable or disable the B@"uchi automata intersection This option can be used to enable or disable the B@"uchi automata intersection
emptiness check emptiness check (@pxref{Automata intersection emptiness check}). The test is
@ifnottex enabled by default.
(@pxref{B@"uchi automata intersection emptiness check}).
@end ifnottex
@iftex
(@pxref{Automata intersection emptiness check}).
@end iftex
The test is enabled by default.
@item ModelCheck = Local @r{|} Global @item ModelCheck = Local @r{|} Global
@findex ModelCheck @r{[}GlobalOptions@r{]} @findex ModelCheck @r{[}GlobalOptions@r{]}
@ -1531,7 +1515,7 @@ the value results in more output. The default value is 3.
@node @samp{FormulaOptions} section, @samp{StateSpaceOptions} section, @samp{GlobalOptions} section, Configuration file @node FormulaOptions section, StateSpaceOptions section, GlobalOptions section, Configuration file
@subsection The @samp{FormulaOptions} section @subsection The @samp{FormulaOptions} section
@cindex configuration file, @samp{FormulaOptions} section @cindex configuration file, @samp{FormulaOptions} section
@ -1796,7 +1780,7 @@ option has no effect if @samp{AbbreviatedOperators} is set to @samp{No}.)
@node @samp{StateSpaceOptions} section, Sample configuration file, @samp{FormulaOptions} section, Configuration file @node StateSpaceOptions section, Sample configuration file, FormulaOptions section, Configuration file
@subsection The @samp{StateSpaceOptions} section @subsection The @samp{StateSpaceOptions} section
@cindex configuration file, @samp{StateSpaceOptions} section @cindex configuration file, @samp{StateSpaceOptions} section
@ -1867,12 +1851,7 @@ the generated state spaces. The default value is 5.
Usually this should probably be the same as the maximum number of Usually this should probably be the same as the maximum number of
different atomic propositions in the generated formulas different atomic propositions in the generated formulas
@ifnottex (@pxref{FormulaOptions section}).
(@pxref{@samp{FormulaOptions} section}).
@end ifnottex
@iftex
(see the previous section).
@end iftex
If the number of propositions attached to each state of If the number of propositions attached to each state of
the state spaces is less than the maximum number of different propositions that the state spaces is less than the maximum number of different propositions that
may occur in the generated formulas, all ``extra'' propositions in the formulas may occur in the generated formulas, all ``extra'' propositions in the formulas
@ -1916,7 +1895,7 @@ in any state of the state space. Note: This option has no effect if
@end table @end table
@node Sample configuration file, , @samp{StateSpaceOptions} section, Configuration file @node Sample configuration file, , StateSpaceOptions section, Configuration file
@subsection Sample configuration file @subsection Sample configuration file
@cindex configuration file, example @cindex configuration file, example
@ -2211,13 +2190,7 @@ between test rounds to wait for user input.
@vindex --intersectiontest @vindex --intersectiontest
@vindex --nointersectiontest @vindex --nointersectiontest
These options enable or disable the B@"uchi automata intersection emptiness These options enable or disable the B@"uchi automata intersection emptiness
check check (@pxref{Automata intersection emptiness check}).
@ifnottex
(@pxref{B@"uchi automata intersection emptiness check}).
@end ifnottex
@iftex
(@pxref{Automata intersection emptiness check}).
@end iftex
@item --localmodelcheck @item --localmodelcheck
@vindex --localmodelcheck @vindex --localmodelcheck
@ -2545,7 +2518,7 @@ This option can be used to change the size of the generated state spaces.
@vindex --truthprobability @vindex --truthprobability
This option sets the probability that @command{lbtt} uses for choosing the This option sets the probability that @command{lbtt} uses for choosing the
valuation for each atomic proposition in each state of the randomly generated valuation for each atomic proposition in each state of the randomly generated
state spaces. (This option has no effect is using enumerated paths as state state spaces. (This option has no effect if using enumerated paths as state
spaces.) spaces.)
@end table @end table
@ -2643,8 +2616,8 @@ Program configuration:
Atomic symbols in use (priority): Atomic symbols in use (priority):
false (5); propositions (90); true (5) false (5); propositions (90); true (5)
Operators used for random LTL formula generation: Operators used for random LTL formula generation:
operator ! /\ U V X \/ operator ! /\ U V X \/
priority 10 20 20 20 10 20 priority 10 20 20 20 10 20
@end smallexample @end smallexample
@node Test round messages, Test statistics, Configuration information, Interpreting the output @node Test round messages, Test statistics, Configuration information, Interpreting the output
@ -2753,12 +2726,7 @@ The output of phases 4---8 will be repeated for each implementation included in
the tests. After this @command{lbtt} proceeds to the model checking result the tests. After this @command{lbtt} proceeds to the model checking result
cross-comparison test (@pxref{Model checking result cross-comparison test}) and cross-comparison test (@pxref{Model checking result cross-comparison test}) and
the B@"uchi automata intersection emptiness test the B@"uchi automata intersection emptiness test
@ifnottex
(@pxref{B@"uchi automata intersection emptiness check}).
@end ifnottex
@iftex
(@pxref{Automata intersection emptiness check}). (@pxref{Automata intersection emptiness check}).
@end iftex
The model checking result cross-comparison test might result in the following The model checking result cross-comparison test might result in the following
output: output:
@ -2886,13 +2854,8 @@ state of the state space).
@item @item
Number of failures in the B@"uchi automata intersection emptiness check Number of failures in the B@"uchi automata intersection emptiness check
@iftex (@pxref{Automata intersection emptiness check}) for each pair of
(@pxref{Automata intersection emptiness check}) implementations.
@end iftex
@ifnottex
(@pxref{B@"uchi automata intersection emptiness check})
@end ifnottex
for each pair of implementations.
@end itemize @end itemize
Note that the pairwise inconsistency results form a symmetric matrix (although Note that the pairwise inconsistency results form a symmetric matrix (although
@ -2908,7 +2871,7 @@ and all LTL formulas used in the tests.
@node Analyzing test results, Interfacing with @command{lbtt}, Interpreting the output, Top @node Analyzing test results, Interfacing with lbtt, Interpreting the output, Top
@chapter Analyzing test results @chapter Analyzing test results
This chapter documents how to use @command{lbtt}'s internal commands to This chapter documents how to use @command{lbtt}'s internal commands to
@ -2921,7 +2884,7 @@ case a test failure is detected) between test rounds to wait for user input by
showing a prompt of the form showing a prompt of the form
@smallexample @smallexample
** [Round 22 of 1000] >> ** [Round 22 of 1000] >>
@end smallexample @end smallexample
@menu @menu
@ -3217,12 +3180,7 @@ automata correctness tests. The second part describes the conventions that
@cindex failure analysis, B@"uchi automata intersection check @cindex failure analysis, B@"uchi automata intersection check
@cindex analyzing test failures, B@"uchi automata intersection emptiness check @cindex analyzing test failures, B@"uchi automata intersection emptiness check
Analyze a failure in the B@"uchi automata intersection emptiness check Analyze a failure in the B@"uchi automata intersection emptiness check
@ifnottex
(@pxref{B@"uchi automata intersection emptiness check}).
@end ifnottex
@iftex
(@pxref{Automata intersection emptiness check}). (@pxref{Automata intersection emptiness check}).
@end iftex
The two implementation identifiers select the B@"uchi automata for which The two implementation identifiers select the B@"uchi automata for which
to perform the analysis. The B@"uchi automata intersection emptiness to perform the analysis. The B@"uchi automata intersection emptiness
check always involves automata constructed from the positive and the negative check always involves automata constructed from the positive and the negative
@ -3463,7 +3421,7 @@ which can be seen from the proof.
@node Interfacing with @command{lbtt}, The @command{lbtt-translate} utility, Analyzing test results, Top @node Interfacing with lbtt, References, Analyzing test results, Top
@chapter Interfacing LTL-to-B@"uchi translators with @command{lbtt} @chapter Interfacing LTL-to-B@"uchi translators with @command{lbtt}
@cindex LTL-to-B@"uchi translators, interfacing with @cindex LTL-to-B@"uchi translators, interfacing with
@ -3472,12 +3430,7 @@ which can be seen from the proof.
This chapter gives the details on how to use @command{lbtt} for This chapter gives the details on how to use @command{lbtt} for
testing LTL-to-B@"uchi translation algorithm implementations that are not testing LTL-to-B@"uchi translation algorithm implementations that are not
supported by the basic distribution. (See supported by the basic distribution. (See
@ifnottex @ref{The lbtt-translate utility}
@ref{The @command{lbtt-translate} utility}
@end ifnottex
@iftex
the next chapter
@end iftex
for information on how to connect several publicly available for information on how to connect several publicly available
LTL-to-B@"uchi translator implementations to @command{lbtt}.) LTL-to-B@"uchi translator implementations to @command{lbtt}.)
@ -3486,12 +3439,14 @@ LTL-to-B@"uchi translator implementations to @command{lbtt}.)
LTL-to-B@"uchi translator. LTL-to-B@"uchi translator.
* Format for LTL formulas:: How @command{lbtt} passes LTL formulas * Format for LTL formulas:: How @command{lbtt} passes LTL formulas
to the translators. to the translators.
* B@"uchi automata:: How @command{lbtt} expects the translators * Format for automata:: How @command{lbtt} expects the translators
to present their output. to present their output.
* The lbtt-translate utility:: An interface for two LTL-to-B@"uchi
translators.
@end menu @end menu
@node Translator interface, Format for LTL formulas, Interfacing with @command{lbtt}, Interfacing with @command{lbtt} @node Translator interface, Format for LTL formulas, Interfacing with lbtt, Interfacing with lbtt
@section Translator interface requirements @section Translator interface requirements
@cindex LTL-to-B@"uchi translators, interface requirements @cindex LTL-to-B@"uchi translators, interface requirements
@ -3514,7 +3469,7 @@ The translator executable should read its input (an LTL formula) from
@var{input-file} and write its output (a B@"uchi automaton) into @var{input-file} and write its output (a B@"uchi automaton) into
@var{output-file} (without removing the input file); see @var{output-file} (without removing the input file); see
@ifnottex @ifnottex
@ref{Format for LTL formulas} and @ref{B@"uchi automata} @ref{Format for LTL formulas} and @ref{Format for automata}
@end ifnottex @end ifnottex
@iftex @iftex
the following two sections the following two sections
@ -3542,7 +3497,7 @@ Algorithm
@node Format for LTL formulas, B@"uchi automata, Translator interface, Interfacing with @command{lbtt} @node Format for LTL formulas, Format for automata, Translator interface, Interfacing with lbtt
@section Input file format for LTL formulas @section Input file format for LTL formulas
@cindex LTL-to-B@"uchi translators, LTL formula input file format @cindex LTL-to-B@"uchi translators, LTL formula input file format
@ -3626,8 +3581,8 @@ line options (@pxref{Command line options}) to prevent
@node B@"uchi automata, , Format for LTL formulas, Interfacing with @command{lbtt} @node Format for automata, The lbtt-translate utility, Format for LTL formulas, Interfacing with lbtt
@section Output file format for B@"uchi automata @section Output file format for automata
@cindex file formats, LTL-to-B@"uchi translator output file @cindex file formats, LTL-to-B@"uchi translator output file
@cindex LTL-to-B@"uchi translators, automaton output file format @cindex LTL-to-B@"uchi translators, automaton output file format
@ -3644,23 +3599,23 @@ The output file generated by the translator should contain an @var{automaton}
described using the following grammar: described using the following grammar:
@smallexample @smallexample
@var{automaton} @r{::=} @var{number-of-states} @var{sp} @var{number-of-acceptance-conditions} @var{states} @var{automaton} @r{::=} @var{num-states} @var{sp} @var{num-conds} @var{states}
@var{number-of-states} @r{::=} @r{[}0@r{---}9@r{]+} @var{num-states} @r{::=} @r{[}0@r{---}9@r{]+}
@var{number-of-acceptance-conditions} @r{::=} @r{[}0@r{---}9@r{]+} @var{num-conds} @r{::=} @r{[}0@r{---}9@r{]+}
@var{states} @r{::=} @var{states} @var{sp} @var{state} @var{states} @r{::=} @var{states} @var{sp} @var{state}
@r{|} @r{// empty} @r{|} @r{// empty}
@var{state} @r{::=} @var{state-id} @var{sp} @var{initial?} @var{acceptance-conditions} @var{sp} `-1' @var{transitions} @var{sp} `-1' @var{state} @r{::=} @var{state-id} @var{sp} @var{initial?} @var{conds} @var{sp} `-1' @var{transitions} @var{sp} `-1'
@var{state-id} @r{::=} @r{[}0@r{---}9@r{]+} @var{state-id} @r{::=} @r{[}0@r{---}9@r{]+}
@var{initial?} @r{::=} `0' @r{|} `1' @var{initial?} @r{::=} `0' @r{|} `1'
@var{acceptance-conditions} @r{::=} @var{acceptance-conditions} @var{sp} @var{acceptance-set-id} @var{conds} @r{::=} @var{conds} @var{sp} @var{acceptance-set-id}
@r{|} @r{// empty} @r{|} @r{// empty}
@var{acceptance-set-id} @r{::=} @r{[}0@r{---}9@r{]+} @var{acceptance-set-id} @r{::=} @r{[}0@r{---}9@r{]+}
@ -3714,7 +3669,7 @@ The state and acceptance condition identifiers need not be successive, and the
states or acceptance conditions can be listed in any order. The only states or acceptance conditions can be listed in any order. The only
restrictions are that the identifiers of different states and acceptance restrictions are that the identifiers of different states and acceptance
conditions should be unique and that the total number of different identifiers conditions should be unique and that the total number of different identifiers
should equal @var{number-of-states} or @var{number-of-acceptance-conditions}, should equal @var{num-states} or @var{num-conds},
respectively. (The same identifiers can be shared between states and acceptance respectively. (The same identifiers can be shared between states and acceptance
conditions, however.) conditions, however.)
@ -3778,7 +3733,7 @@ The following example illustrates the file format.
@node The @command{lbtt-translate} utility, References, Interfacing with @command{lbtt}, Top @node The lbtt-translate utility, , Format for automata, Interfacing with lbtt
@section The @command{lbtt-translate} utility @section The @command{lbtt-translate} utility
@cindex @command{lbtt-translate} (executable file) @cindex @command{lbtt-translate} (executable file)
@ -3847,17 +3802,18 @@ installation instructions. Then add the following @samp{Algorithm} section in
@smallexample @smallexample
Algorithm Algorithm
@{ @{
Name = "@var{name for the implementation}" Name = "@r{[@var{name for the implementation}]}"
Path = "@var{path-to-@command{lbtt-translate}} @var{implementation-selector} @var{path-to-executable}" Path = "@r{[@var{path-to-@command{lbtt-translate}}]}"
Parameters = "@r{[@var{implementation selector}]} @r{[@var{path to executable}]}"
Enabled = Yes Enabled = Yes
@} @}
@end smallexample @end smallexample
@noindent @noindent
where @var{path-to-@command{lbtt-translate}} contains the complete path and where [@var{path-to-@command{lbtt-translate}}] contains the complete path and
file name of the @command{lbtt-translate} tool executable, file name of the @command{lbtt-translate} tool executable,
@var{implementation-selector} is either of the options @samp{--lbt} or [@var{implementation selector}] is either of the options @samp{--lbt} or
@samp{--spin}, and @var{path-to-executable} is the full path @samp{--spin}, and [@var{path to executable}] is the full path
of the tool executable. The names of these executables are usually (assuming of the tool executable. The names of these executables are usually (assuming
a normal installation) @command{lbt} and @command{spin}, respectively. a normal installation) @command{lbt} and @command{spin}, respectively.
@ -3875,7 +3831,7 @@ see a short summary of available options.
@node References, Definitions, The @command{lbtt-translate} utility, Top @node References, Definitions, Interfacing with lbtt, Top
@unnumbered References @unnumbered References
@table @asis @table @asis
@ -3884,7 +3840,7 @@ E.@: Clarke Jr., O.@: Grumberg and D.@: Peled. Model checking. The MIT Press,
1999. 1999.
@item @anchor{[Cou99]} [Cou99] @item @anchor{[Cou99]} [Cou99]
J-M. Couvreur. On-the-fly verification of linear temporal logic. In J.-M. Couvreur. On-the-fly verification of linear temporal logic. In
@i{Proceedings of the World Congress on Formal Methods in the Development of @i{Proceedings of the World Congress on Formal Methods in the Development of
Computing Systems (FM'99), volume I}, volume 1708 of Computing Systems (FM'99), volume I}, volume 1708 of
@i{Lecture Notes in Computer Science}, pages 253---271. Springer-Verlag, 1999. @i{Lecture Notes in Computer Science}, pages 253---271. Springer-Verlag, 1999.
@ -3892,7 +3848,7 @@ Computing Systems (FM'99), volume I}, volume 1708 of
@item @anchor{[DGV99]} [DGV99] @item @anchor{[DGV99]} [DGV99]
M.@: Daniele, F.@: Giunchiglia and M.@: Y.@: Vardi. Improved automata M.@: Daniele, F.@: Giunchiglia and M.@: Y.@: Vardi. Improved automata
generation for linear temporal logic. In @i{Proceedings of the 11th generation for linear temporal logic. In @i{Proceedings of the 11th
International Conference on Computer Aided Verification (CAV'99)}, volume 1633 International Conference on Computer Aided Verification (CAV'99)}, volume 1633
of @i{Lecture Notes in Computer Science}, pages 249---260. Springer-Verlag, of @i{Lecture Notes in Computer Science}, pages 249---260. Springer-Verlag,
1999. 1999.
@ -4001,7 +3957,7 @@ manipulates.
* LTL formulas:: @command{lbtt} uses traditional semantics * LTL formulas:: @command{lbtt} uses traditional semantics
for propositional linear temporal for propositional linear temporal
logic. logic.
* Generalized B@"uchi automata:: The B@"uchi automata used by @command{lbtt} * Generalized automata:: The B@"uchi automata used by @command{lbtt}
have one initial state, labels on have one initial state, labels on
transitions and zero or more transitions and zero or more
acceptance conditions. acceptance conditions.
@ -4010,7 +3966,7 @@ manipulates.
@end menu @end menu
@node LTL formulas, Generalized B@"uchi automata, Definitions, Definitions @node LTL formulas, Generalized automata, Definitions, Definitions
@appendixsec LTL formulas @appendixsec LTL formulas
@command{lbtt} uses the traditional definition for propositional linear @command{lbtt} uses the traditional definition for propositional linear
@ -4390,8 +4346,8 @@ $(\varphi\;{\bf B}\;\psi) \equiv_{\rm def} \neg(\neg\varphi\;\bf{U}\;\psi)$
@node Generalized B@"uchi automata, State spaces, LTL formulas, Definitions @node Generalized automata, State spaces, LTL formulas, Definitions
@appendixsec Generalized B@"uchi automata @appendixsec Generalized automata
@cindex B@"uchi automata, formal definition @cindex B@"uchi automata, formal definition
@cindex generalized B@"uchi automata, formal definition @cindex generalized B@"uchi automata, formal definition
@ -4410,7 +4366,7 @@ $2^{AP}$
with one initial state, labels on transitions and zero or more acceptance with one initial state, labels on transitions and zero or more acceptance
conditions. conditions.
@appendixsubsec Formal definition of generalized B@"uchi automata @appendixsubsec Formal definition of generalized automata
Formally, a generalized B@"uchi automaton can be represented as a tuple Formally, a generalized B@"uchi automaton can be represented as a tuple
@iftex @iftex
@ -4575,7 +4531,7 @@ $Q$,
@end ifnottex @end ifnottex
the automaton may have many runs on the same input. the automaton may have many runs on the same input.
A run A run
@iftex @iftex
@tex @tex
$\langle q_0, q_1, q_2, \ldots\rangle$ $\langle q_0, q_1, q_2, \ldots\rangle$
@ -4699,7 +4655,7 @@ of some states and then adjusting the transition labels appropriately.
@node State spaces, , Generalized B@"uchi automata, Definitions @node State spaces, , Generalized automata, Definitions
@appendixsec State spaces @appendixsec State spaces
@cindex state space, formal definition @cindex state space, formal definition

View file

@ -1,3 +1,4 @@
,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,
: State space : : State space :
''''''''''''''' '''''''''''''''

File diff suppressed because it is too large Load diff

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
@ -17,10 +17,6 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#ifdef __GNUC__
#pragma implementation
#endif /* __GNUC__ */
#include <config.h> #include <config.h>
#ifdef HAVE_SSTREAM #ifdef HAVE_SSTREAM
#include <sstream> #include <sstream>

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
@ -20,10 +20,6 @@
#ifndef BITARRAY_H #ifndef BITARRAY_H
#define BITARRAY_H #define BITARRAY_H
#ifdef __GNUC__
#pragma interface
#endif /* __GNUC__ */
#include <config.h> #include <config.h>
#include <cstring> #include <cstring>
#include <string> #include <string>

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
@ -17,10 +17,6 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#ifdef __GNUC__
#pragma implementation
#endif /* __GNUC__ */
#include <config.h> #include <config.h>
#include <deque> #include <deque>
#include <stack> #include <stack>

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
@ -20,15 +20,11 @@
#ifndef BUCHIAUTOMATON_H #ifndef BUCHIAUTOMATON_H
#define BUCHIAUTOMATON_H #define BUCHIAUTOMATON_H
#ifdef __GNUC__
#pragma interface
#endif /* __GNUC__ */
#include <config.h> #include <config.h>
#include <iostream> #include <iostream>
#include <map> #include <map>
#include <string> #include <string>
#include "Alloc.h" #include "LbttAlloc.h"
#include "BitArray.h" #include "BitArray.h"
#include "EdgeContainer.h" #include "EdgeContainer.h"
#include "Exception.h" #include "Exception.h"

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
@ -368,7 +368,7 @@ static inline bool isLocked(int option)
/* Punctuation symbols. */ /* Punctuation symbols. */
%token CFG_LBRACE CFG_RBRACE CFG_EQUALS %token CFG_LBRACE CFG_RBRACE CFG_EQUALS
%token CFG_BLOCK_ID, CFG_OPTION_ID %token CFG_BLOCK_ID CFG_OPTION_ID
/* The `unknown' token. */ /* The `unknown' token. */

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
@ -17,10 +17,6 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#ifdef __GNUC__
#pragma implementation
#endif /* __GNUC__ */
#include <config.h> #include <config.h>
#include <cstdio> #include <cstdio>
#include <cstdlib> #include <cstdlib>

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
@ -20,10 +20,6 @@
#ifndef CONFIGURATION_H #ifndef CONFIGURATION_H
#define CONFIGURATION_H #define CONFIGURATION_H
#ifdef __GNUC__
#pragma interface
#endif /* __GNUC__ */
#include <config.h> #include <config.h>
#include <iostream> #include <iostream>
#include <map> #include <map>
@ -31,7 +27,7 @@
#include <string> #include <string>
#include <utility> #include <utility>
#include <vector> #include <vector>
#include "Alloc.h" #include "LbttAlloc.h"
#include "Exception.h" #include "Exception.h"
#include "FormulaRandomizer.h" #include "FormulaRandomizer.h"
#include "StateSpaceRandomizer.h" #include "StateSpaceRandomizer.h"

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
@ -17,14 +17,10 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#ifdef __GNUC__
#pragma implementation
#endif /* __GNUC__ */
#include <config.h> #include <config.h>
#include <deque> #include <deque>
#include <stack> #include <stack>
#include "Alloc.h" #include "LbttAlloc.h"
#include "DispUtil.h" #include "DispUtil.h"
/****************************************************************************** /******************************************************************************

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
@ -20,10 +20,6 @@
#ifndef DISPUTIL_H #ifndef DISPUTIL_H
#define DISPUTIL_H #define DISPUTIL_H
#ifdef __GNUC__
#pragma interface
#endif /* __GNUC__ */
#include <config.h> #include <config.h>
#include <iostream> #include <iostream>
#include <string> #include <string>

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
@ -17,10 +17,6 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#ifdef __GNUC__
#pragma implementation
#endif /* __GNUC__ */
#include <config.h> #include <config.h>
#include <cstdio> #include <cstdio>
#include <cstdlib> #include <cstdlib>

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
@ -20,10 +20,6 @@
#ifndef EXTERNALTRANSLATOR_H #ifndef EXTERNALTRANSLATOR_H
#define EXTERNALTRANSLATOR_H #define EXTERNALTRANSLATOR_H
#ifdef __GNUC__
#pragma interface
#endif /* __GNUC__ */
#include <config.h> #include <config.h>
#include <deque> #include <deque>
#include <stack> #include <stack>
@ -33,7 +29,7 @@
#else #else
#include <strstream> #include <strstream>
#endif /* HAVE_SSTREAM */ #endif /* HAVE_SSTREAM */
#include "Alloc.h" #include "LbttAlloc.h"
#include "Exception.h" #include "Exception.h"
#include "LtlFormula.h" #include "LtlFormula.h"
#include "translate.h" #include "translate.h"

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
@ -17,10 +17,6 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#ifdef __GNUC__
#pragma implementation
#endif /* __GNUC__ */
#include <config.h> #include <config.h>
#include "FormulaRandomizer.h" #include "FormulaRandomizer.h"
#include "Random.h" #include "Random.h"

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
@ -20,14 +20,10 @@
#ifndef FORMULARANDOMIZER_H #ifndef FORMULARANDOMIZER_H
#define FORMULARANDOMIZER_H #define FORMULARANDOMIZER_H
#ifdef __GNUC__
#pragma interface
#endif /* __GNUC__ */
#include <config.h> #include <config.h>
#include <vector> #include <vector>
#include <utility> #include <utility>
#include "Alloc.h" #include "LbttAlloc.h"
#include "LtlFormula.h" #include "LtlFormula.h"
namespace Ltl namespace Ltl

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
@ -34,7 +34,7 @@ using SLIST_NAMESPACE::slist;
#include <utility> #include <utility>
#include <vector> #include <vector>
#include "Alloc.h" #include "LbttAlloc.h"
#include "BitArray.h" #include "BitArray.h"
#include "Exception.h" #include "Exception.h"

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or

167
lbtt/src/LbttAlloc.h Normal file
View file

@ -0,0 +1,167 @@
/*
* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
*
* This program 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.
*
* This program 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 this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifndef LBTTALLOC_H
#define LBTTALLOC_H
#include <config.h>
#ifdef HAVE_SINGLE_CLIENT_ALLOC
#define ALLOC(typename) single_client_alloc
#else
#define ALLOC(typename) allocator<typename>
#endif /* HAVE_SINGLE_CLIENT_ALLOC */
#ifdef HAVE_OBSTACK_H
/* GNU libc 2.3.2's copy of obstack.h uses a definition of __INT_TO_PTR
which does not compile in C++. Fortunately it will not override
an existing definition. */
#ifdef GLIBC_OBSTACK_WORKAROUND
#define __INT_TO_PTR(P) ((P) + (char *) 0)
#endif
#include <obstack.h>
#include <cstdlib>
#include <new>
/******************************************************************************
*
* A wrapper class for allocating memory through an obstack.
*
*****************************************************************************/
class ObstackAllocator
{
public:
ObstackAllocator(); /* Constructor. */
~ObstackAllocator(); /* Destructor. */
void* alloc(int size); /* Allocates memory. */
void free(void* obj); /* Deallocates memory. */
static void failure(); /* Callback function for
* reporting a memory
* allocation failure.
*/
private:
ObstackAllocator(const ObstackAllocator&); /* Prevent copying and */
ObstackAllocator& operator= /* assignment of */
(const ObstackAllocator&); /* ObstackAllocator
* objects.
*/
struct obstack store; /* The obstack. */
};
#define obstack_chunk_alloc std::malloc
#define obstack_chunk_free std::free
/******************************************************************************
*
* Inline function definitions for class ObstackAllocator.
*
*****************************************************************************/
/* ========================================================================= */
inline ObstackAllocator::ObstackAllocator()
/* ----------------------------------------------------------------------------
*
* Description: Constructor for class ObstackAllocator.
*
* Arguments: None.
*
* Returns: Nothing.
*
* ------------------------------------------------------------------------- */
{
obstack_init(&store);
}
/* ========================================================================= */
inline ObstackAllocator::~ObstackAllocator()
/* ----------------------------------------------------------------------------
*
* Description: Destructor for class ObstackAllocator.
*
* Arguments: None.
*
* Returns: Nothing.
*
* ------------------------------------------------------------------------- */
{
obstack_free(&store, NULL);
}
/* ========================================================================= */
inline void* ObstackAllocator::alloc(int size)
/* ----------------------------------------------------------------------------
*
* Description: Interface to the memory allocator.
*
* Argument: size -- Number of bytes to allocate.
*
* Returns: A pointer to the beginning of the newly allocated memory.
*
* ------------------------------------------------------------------------- */
{
return obstack_alloc(&store, size);
}
/* ========================================================================= */
inline void ObstackAllocator::free(void* obj)
/* ----------------------------------------------------------------------------
*
* Description: Interface to the memory deallocation function.
*
* Argument: obj -- A pointer to the object to deallocate. (Because the
* underlying memory allocator is an obstack, freeing
* an object also releases all objects allocated after
* the given object.)
*
* Returns: Nothing.
*
* ------------------------------------------------------------------------- */
{
obstack_free(&store, obj);
}
/* ========================================================================= */
inline void ObstackAllocator::failure()
/* ----------------------------------------------------------------------------
*
* Description: Callback function for reporting memory allocation failures.
*
* Arguments: None.
*
* Returns: Nothing.
*
* ------------------------------------------------------------------------- */
{
throw std::bad_alloc();
}
#endif /* HAVE_OBSTACK_H */
#endif /* !LBTTALLOC_H */

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
@ -17,10 +17,6 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#ifdef __GNUC__
#pragma implementation
#endif /* __GNUC__ */
#include <config.h> #include <config.h>
#include "FormulaWriter.h" #include "FormulaWriter.h"
#include "LtlFormula.h" #include "LtlFormula.h"

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
@ -20,17 +20,13 @@
#ifndef LTLFORMULA_H #ifndef LTLFORMULA_H
#define LTLFORMULA_H #define LTLFORMULA_H
#ifdef __GNUC__
#pragma interface
#endif /* __GNUC__ */
#include <config.h> #include <config.h>
#include <deque> #include <deque>
#include <iostream> #include <iostream>
#include <map> #include <map>
#include <stack> #include <stack>
#include <string> #include <string>
#include "Alloc.h" #include "LbttAlloc.h"
#include "BitArray.h" #include "BitArray.h"
#include "Exception.h" #include "Exception.h"

View file

@ -1,21 +1,21 @@
bin_PROGRAMS = lbtt lbtt-translate bin_PROGRAMS = lbtt lbtt-translate
lbtt_SOURCES = Alloc.h BitArray.h Bitset.h BitArray.cc BuchiAutomaton.h \ lbtt_SOURCES = BitArray.h Bitset.h BitArray.cc BuchiAutomaton.h \
BuchiAutomaton.cc Config-parse.yy Config-lex.ll Configuration.h \ BuchiAutomaton.cc Config-parse.yy Config-lex.ll Configuration.h \
Configuration.cc DispUtil.h DispUtil.cc EdgeContainer.h Exception.h \ Configuration.cc DispUtil.h DispUtil.cc EdgeContainer.h Exception.h \
FormulaRandomizer.h FormulaRandomizer.cc FormulaWriter.h LtlFormula.h \ FormulaRandomizer.h FormulaRandomizer.cc FormulaWriter.h LbttAlloc.h \
LtlFormula.cc main.cc PathEvaluator.h PathEvaluator.cc PathIterator.h \ LtlFormula.h LtlFormula.cc main.cc PathEvaluator.h PathEvaluator.cc \
PathIterator.cc ProductAutomaton.h ProductAutomaton.cc Random.h SccIterator.h \ PathIterator.h PathIterator.cc ProductAutomaton.h ProductAutomaton.cc \
SharedTestData.h StatDisplay.h StatDisplay.cc StateSpace.h StateSpace.cc \ Random.h SccIterator.h SharedTestData.h StatDisplay.h StatDisplay.cc \
StateSpaceRandomizer.h StateSpaceRandomizer.cc StringUtil.h StringUtil.cc \ StateSpace.h StateSpace.cc StateSpaceRandomizer.h StateSpaceRandomizer.cc \
TestOperations.h TestOperations.cc TestRoundInfo.h TestStatistics.h \ StringUtil.h StringUtil.cc TestOperations.h TestOperations.cc TestRoundInfo.h \
TestStatistics.cc UserCommandReader.h UserCommandReader.cc UserCommands.h \ TestStatistics.h TestStatistics.cc UserCommandReader.h UserCommandReader.cc \
UserCommands.cc UserCommands.h UserCommands.cc
EXTRA_lbtt_SOURCES = gnu-getopt.h Config-parse.h EXTRA_lbtt_SOURCES = gnu-getopt.h Config-parse.h
lbtt_LDADD = @LIBOBJS@ @READLINELIBS@ lbtt_LDADD = @LIBOBJS@ @READLINELIBS@
lbtt_translate_SOURCES = Alloc.h BitArray.h BitArray.cc Exception.h \ lbtt_translate_SOURCES = BitArray.h BitArray.cc Exception.h \
ExternalTranslator.h ExternalTranslator.cc FormulaWriter.h LbtWrapper.h \ ExternalTranslator.h ExternalTranslator.cc FormulaWriter.h LbttAlloc.h \
LtlFormula.h LtlFormula.cc NeverClaim-parse.yy NeverClaim-lex.ll \ LbtWrapper.h LtlFormula.h LtlFormula.cc NeverClaim-parse.yy NeverClaim-lex.ll \
NeverClaimAutomaton.h NeverClaimAutomaton.cc SpinWrapper.h SpinWrapper.cc \ NeverClaimAutomaton.h NeverClaimAutomaton.cc SpinWrapper.h SpinWrapper.cc \
StringUtil.h StringUtil.cc translate.h translate.cc TranslatorInterface.h StringUtil.h StringUtil.cc translate.h translate.cc TranslatorInterface.h
EXTRA_lbtt_translate_SOURCES = gnu-getopt.h NeverClaim-parse.h EXTRA_lbtt_translate_SOURCES = gnu-getopt.h NeverClaim-parse.h

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
@ -17,10 +17,6 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#ifdef __GNUC__
#pragma implementation
#endif /* __GNUC__ */
#include <config.h> #include <config.h>
#include <cstdio> #include <cstdio>
#include <fstream> #include <fstream>

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
@ -20,16 +20,12 @@
#ifndef NEVERCLAIMAUTOMATON_H #ifndef NEVERCLAIMAUTOMATON_H
#define NEVERCLAIMAUTOMATON_H #define NEVERCLAIMAUTOMATON_H
#ifdef __GNUC__
#pragma interface
#endif /* __GNUC__ */
#include <config.h> #include <config.h>
#include <map> #include <map>
#include <string> #include <string>
#include <utility> #include <utility>
#include <vector> #include <vector>
#include "Alloc.h" #include "LbttAlloc.h"
#include "Exception.h" #include "Exception.h"
using namespace std; using namespace std;

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
@ -17,10 +17,6 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#ifdef __GNUC__
#pragma implementation
#endif /* __GNUC__ */
#include <config.h> #include <config.h>
#include <deque> #include <deque>
#include <stack> #include <stack>

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
@ -20,13 +20,9 @@
#ifndef PATHEVALUATOR_H #ifndef PATHEVALUATOR_H
#define PATHEVALUATOR_H #define PATHEVALUATOR_H
#ifdef __GNUC__
#pragma interface
#endif /* __GNUC__ */
#include <iostream> #include <iostream>
#include <map> #include <map>
#include "Alloc.h" #include "LbttAlloc.h"
#include "BitArray.h" #include "BitArray.h"
#include "Exception.h" #include "Exception.h"
#include "LtlFormula.h" #include "LtlFormula.h"

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
@ -17,10 +17,6 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#ifdef __GNUC__
#pragma implementation
#endif /* __GNUC__ */
#include <config.h> #include <config.h>
#include "BitArray.h" #include "BitArray.h"
#include "PathIterator.h" #include "PathIterator.h"

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
@ -20,10 +20,6 @@
#ifndef PATHITERATOR_H #ifndef PATHITERATOR_H
#define PATHITERATOR_H #define PATHITERATOR_H
#ifdef __GNUC__
#pragma interface
#endif /* __GNUC__ */
#include <config.h> #include <config.h>
#include "StateSpace.h" #include "StateSpace.h"

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
@ -17,10 +17,6 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#ifdef __GNUC__
#pragma implementation
#endif /* __GNUC__ */
#include <config.h> #include <config.h>
#include "ProductAutomaton.h" #include "ProductAutomaton.h"
#include "SccIterator.h" #include "SccIterator.h"

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
@ -20,15 +20,11 @@
#ifndef PRODUCTAUTOMATON_H #ifndef PRODUCTAUTOMATON_H
#define PRODUCTAUTOMATON_H #define PRODUCTAUTOMATON_H
#ifdef __GNUC__
#pragma interface
#endif /* __GNUC__ */
#include <config.h> #include <config.h>
#include <deque> #include <deque>
#include <iostream> #include <iostream>
#include <vector> #include <vector>
#include "Alloc.h" #include "LbttAlloc.h"
#include "BitArray.h" #include "BitArray.h"
#include "BuchiAutomaton.h" #include "BuchiAutomaton.h"
#include "EdgeContainer.h" #include "EdgeContainer.h"

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
@ -25,7 +25,7 @@
#include <set> #include <set>
#include <stack> #include <stack>
#include <vector> #include <vector>
#include "Alloc.h" #include "LbttAlloc.h"
#include "Graph.h" #include "Graph.h"
using namespace std; using namespace std;

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
@ -21,7 +21,7 @@
#define SHAREDTESTDATA_H #define SHAREDTESTDATA_H
#include <vector> #include <vector>
#include "Alloc.h" #include "LbttAlloc.h"
#include "Exception.h" #include "Exception.h"
#include "TestRoundInfo.h" #include "TestRoundInfo.h"
#include "TestStatistics.h" #include "TestStatistics.h"

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
@ -17,10 +17,6 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#ifdef __GNUC__
#pragma implementation
#endif /* __GNUC__ */
#include <config.h> #include <config.h>
#ifdef HAVE_SSTREAM #ifdef HAVE_SSTREAM
#include <sstream> #include <sstream>

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
@ -20,10 +20,6 @@
#ifndef SPINWRAPPER_H #ifndef SPINWRAPPER_H
#define SPINWRAPPER_H #define SPINWRAPPER_H
#ifdef __GNUC__
#pragma interface
#endif /* __GNUC__ */
#include <config.h> #include <config.h>
#include <string> #include <string>
#include "ExternalTranslator.h" #include "ExternalTranslator.h"

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
@ -17,10 +17,6 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#ifdef __GNUC__
#pragma implementation
#endif /* __GNUC__ */
#include <config.h> #include <config.h>
#include <string> #include <string>
#include "DispUtil.h" #include "DispUtil.h"

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
@ -20,14 +20,10 @@
#ifndef STATDISPLAY_H #ifndef STATDISPLAY_H
#define STATDISPLAY_H #define STATDISPLAY_H
#ifdef __GNUC__
#pragma interface
#endif /* __GNUC__ */
#include <config.h> #include <config.h>
#include <iostream> #include <iostream>
#include <vector> #include <vector>
#include "Alloc.h" #include "LbttAlloc.h"
#include "Configuration.h" #include "Configuration.h"
#include "TestStatistics.h" #include "TestStatistics.h"

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
@ -17,10 +17,6 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#ifdef __GNUC__
#pragma implementation
#endif /* __GNUC__ */
#include <config.h> #include <config.h>
#include <map> #include <map>
#include "DispUtil.h" #include "DispUtil.h"

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
@ -20,12 +20,8 @@
#ifndef STATESPACE_H #ifndef STATESPACE_H
#define STATESPACE_H #define STATESPACE_H
#ifdef __GNUC__
#pragma interface
#endif /* __GNUC__ */
#include <config.h> #include <config.h>
#include "Alloc.h" #include "LbttAlloc.h"
#include "BitArray.h" #include "BitArray.h"
#include "EdgeContainer.h" #include "EdgeContainer.h"
#include "Graph.h" #include "Graph.h"

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
@ -17,14 +17,10 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#ifdef __GNUC__
#pragma implementation
#endif /* __GNUC__ */
#include <climits> #include <climits>
#include <config.h> #include <config.h>
#include <map> #include <map>
#include "Alloc.h" #include "LbttAlloc.h"
#include "BitArray.h" #include "BitArray.h"
#include "Exception.h" #include "Exception.h"
#include "StateSpaceRandomizer.h" #include "StateSpaceRandomizer.h"

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
@ -20,10 +20,6 @@
#ifndef STATESPACERANDOMIZER_H #ifndef STATESPACERANDOMIZER_H
#define STATESPACERANDOMIZER_H #define STATESPACERANDOMIZER_H
#ifdef __GNUC__
#pragma interface
#endif /* __GNUC__ */
#include <config.h> #include <config.h>
#include "Random.h" #include "Random.h"
#include "StateSpace.h" #include "StateSpace.h"

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
@ -17,10 +17,6 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#ifdef __GNUC__
#pragma implementation
#endif /* __GNUC__ */
#include <config.h> #include <config.h>
#include <cstdlib> #include <cstdlib>
#include "StringUtil.h" #include "StringUtil.h"

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
@ -20,10 +20,6 @@
#ifndef STRINGUTIL_H #ifndef STRINGUTIL_H
#define STRINGUTIL_H #define STRINGUTIL_H
#ifdef __GNUC__
#pragma interface
#endif /* __GNUC__ */
#include <config.h> #include <config.h>
#include <set> #include <set>
#include <string> #include <string>
@ -33,7 +29,7 @@
#include <strstream> #include <strstream>
#endif /* HAVE_SSTREAM */ #endif /* HAVE_SSTREAM */
#include <vector> #include <vector>
#include "Alloc.h" #include "LbttAlloc.h"
#include "Exception.h" #include "Exception.h"
using namespace std; using namespace std;

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
@ -17,10 +17,6 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#ifdef __GNUC__
#pragma implementation
#endif /* __GNUC__ */
#include <config.h> #include <config.h>
#include <cstdio> #include <cstdio>
#include <cstdlib> #include <cstdlib>

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
@ -20,16 +20,12 @@
#ifndef TESTOPERATIONS_H #ifndef TESTOPERATIONS_H
#define TESTOPERATIONS_H #define TESTOPERATIONS_H
#ifdef __GNUC__
#pragma interface
#endif /* __GNUC__ */
#include <config.h> #include <config.h>
#include <fstream> #include <fstream>
#include <iostream> #include <iostream>
#include <string> #include <string>
#include <vector> #include <vector>
#include "Alloc.h" #include "LbttAlloc.h"
#include "Configuration.h" #include "Configuration.h"
#include "Exception.h" #include "Exception.h"
#include "StateSpace.h" #include "StateSpace.h"

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
@ -25,7 +25,7 @@
#include <fstream> #include <fstream>
#include <iostream> #include <iostream>
#include <vector> #include <vector>
#include "Alloc.h" #include "LbttAlloc.h"
#include "Exception.h" #include "Exception.h"
#include "LtlFormula.h" #include "LtlFormula.h"
#include "ProductAutomaton.h" #include "ProductAutomaton.h"

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
@ -17,10 +17,6 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#ifdef __GNUC__
#pragma implementation
#endif /* __GNUC__ */
#include <config.h> #include <config.h>
#include "TestStatistics.h" #include "TestStatistics.h"

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
@ -20,14 +20,10 @@
#ifndef TESTSTATISTICS_H #ifndef TESTSTATISTICS_H
#define TESTSTATISTICS_H #define TESTSTATISTICS_H
#ifdef __GNUC__
#pragma interface
#endif /* __GNUC__ */
#include <config.h> #include <config.h>
#include <utility> #include <utility>
#include <vector> #include <vector>
#include "Alloc.h" #include "LbttAlloc.h"
#include "BuchiAutomaton.h" #include "BuchiAutomaton.h"
#include "Configuration.h" #include "Configuration.h"
#include "ProductAutomaton.h" #include "ProductAutomaton.h"

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
@ -17,10 +17,6 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#ifdef __GNUC__
#pragma implementation
#endif /* __GNUC__ */
#include <config.h> #include <config.h>
#include <csignal> #include <csignal>
#include <cstdio> #include <cstdio>
@ -50,6 +46,13 @@
#include <readline/history.h> #include <readline/history.h>
#endif /* HAVE_READLINE */ #endif /* HAVE_READLINE */
#ifdef HAVE_ISATTY
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif /* HAVE_UNISTD_H */
#endif /* HAVE_ISATTY */
/****************************************************************************** /******************************************************************************
* *
@ -131,20 +134,41 @@ void executeUserCommands()
input_line = line; input_line = line;
else else
{ {
round_info.cout << '\n';
round_info.cout.flush();
}
#else #else
round_info.cout << prompt; round_info.cout << prompt;
round_info.cout.flush(); round_info.cout.flush();
getline(cin, input_line, '\n'); getline(cin, input_line, '\n');
if (cin.eof()) if (cin.eof())
{ {
round_info.cout << '\n';
round_info.cout.flush();
cin.clear(); cin.clear();
#endif /* HAVE_READLINE */
#ifdef HAVE_ISATTY
/*
* If standard input is not bound to a terminal, act on EOF as if the
* `continue' command had been issued. Otherwise act as if an empty
* line was given as input.
*/
if (!isatty(STDIN_FILENO))
input_line = "continue";
else
{
round_info.cout << '\n';
round_info.cout.flush();
}
#else
input_line = "continue";
round_info.cout << input_line << '\n';
round_info.cout.flush();
#endif /* HAVE_ISATTY */
} }
#endif /* HAVE_READLINE */
#ifdef HAVE_ISATTY
if (!isatty(STDIN_FILENO))
{
round_info.cout << input_line << '\n';
round_info.cout.flush();
}
#endif /* HAVE_ISATTY */
external_command = ""; external_command = "";
string::size_type pipe_pos = input_line.find_first_of('|'); string::size_type pipe_pos = input_line.find_first_of('|');
@ -166,8 +190,11 @@ void executeUserCommands()
if (!input_tokens.empty()) if (!input_tokens.empty())
{ {
#ifdef HAVE_READLINE #ifdef HAVE_READLINE
add_history(line); if (line != static_cast<char*>(0)) /* line may be 0 on EOF */
free(line); {
add_history(line);
free(line);
}
#endif /* HAVE_READLINE */ #endif /* HAVE_READLINE */
round_info.cout << '\n'; round_info.cout << '\n';
round_info.cout.flush(); round_info.cout.flush();

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
@ -20,15 +20,11 @@
#ifndef USERCOMMANDREADER_H #ifndef USERCOMMANDREADER_H
#define USERCOMMANDREADER_H #define USERCOMMANDREADER_H
#ifdef __GNUC__
#pragma interface
#endif /* __GNUC__ */
#include <config.h> #include <config.h>
#include <string> #include <string>
#include <utility> #include <utility>
#include <vector> #include <vector>
#include "Alloc.h" #include "LbttAlloc.h"
#include "Configuration.h" #include "Configuration.h"
#include "Exception.h" #include "Exception.h"

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
@ -17,10 +17,6 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#ifdef __GNUC__
#pragma implementation
#endif /* __GNUC__ */
#include <config.h> #include <config.h>
#include "DispUtil.h" #include "DispUtil.h"
#include "Exception.h" #include "Exception.h"

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
@ -20,17 +20,13 @@
#ifndef USERCOMMANDS_H #ifndef USERCOMMANDS_H
#define USERCOMMANDS_H #define USERCOMMANDS_H
#ifdef __GNUC__
#pragma interface
#endif /* __GNUC__ */
#include <config.h> #include <config.h>
#include <deque> #include <deque>
#include <iostream> #include <iostream>
#include <string> #include <string>
#include <vector> #include <vector>
#include <utility> #include <utility>
#include "Alloc.h" #include "LbttAlloc.h"
#include "BuchiAutomaton.h" #include "BuchiAutomaton.h"
#include "Configuration.h" #include "Configuration.h"
#include "ProductAutomaton.h" #include "ProductAutomaton.h"

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
@ -28,7 +28,7 @@
#include <readline/readline.h> #include <readline/readline.h>
#include <readline/history.h> #include <readline/history.h>
#endif /* HAVE_READLINE */ #endif /* HAVE_READLINE */
#include "Alloc.h" #include "LbttAlloc.h"
#include "Configuration.h" #include "Configuration.h"
#include "DispUtil.h" #include "DispUtil.h"
#include "Exception.h" #include "Exception.h"

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
@ -17,10 +17,6 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#ifdef __GNUC__
#pragma implementation
#endif /* __GNUC__ */
#include <config.h> #include <config.h>
#include <csignal> #include <csignal>
#include <fstream> #include <fstream>

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi> * Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
@ -20,10 +20,6 @@
#ifndef TRANSLATE_H #ifndef TRANSLATE_H
#define TRANSLATE_H #define TRANSLATE_H
#ifdef __GNUC__
#pragma interface
#endif /* __GNUC__ */
#include <config.h> #include <config.h>
#include <string> #include <string>