[lbtt] Adjust parser to Bison 2.4.1.

This commit is contained in:
Alexandre Duret-Lutz 2009-05-31 21:26:25 +02:00
parent 352984293a
commit 2cc7c253f1
2 changed files with 76 additions and 66 deletions

View file

@ -1,3 +1,13 @@
2009-05-31 Alexandre Duret-Lutz <adl@gnu.org>
Adjust parser to Bison 2.4.1.
* src/Config-parse.yy (yyerror): Move to the end of the file, to
please newer versions of Bison. With Bison 2.4.1 the various
token used by yyerror() are now defined only after the first
%{...%} block has been emitted (in which yyerror() was previously
defined).
2008-03-13 Alexandre Duret-Lutz <adl@lrde.epita.fr> 2008-03-13 Alexandre Duret-Lutz <adl@lrde.epita.fr>
* src/main.cc: Include <climits> for LONG_MAX. lbtt won't * src/main.cc: Include <climits> for LONG_MAX. lbtt won't
@ -25,13 +35,13 @@
Update description of the --formulafile command line option. Update description of the --formulafile command line option.
(Configuration::print): Do not display a file name when reading (Configuration::print): Do not display a file name when reading
formulas from standard input. formulas from standard input.
* src/SpotWrapper.h, src/SpotWrapper.cc: Merge files from * src/SpotWrapper.h, src/SpotWrapper.cc: Merge files from
Spot 0.2 (contributed by Alexandre Duret-Lutz); remove #pragma Spot 0.2 (contributed by Alexandre Duret-Lutz); remove #pragma
definitions. definitions.
* src/ExternalTranslator.h, src/Makefile.in, src/translate.cc: * src/ExternalTranslator.h, src/Makefile.in, src/translate.cc:
Merge changes from Spot 0.2 (contributed by Alexandre Duret-Lutz). Merge changes from Spot 0.2 (contributed by Alexandre Duret-Lutz).
* doc/lbtt.texi: Fix typo in URL of the FormulaOptions block * doc/lbtt.texi: Fix typo in URL of the FormulaOptions block
generator. Update version, add documentation and references about generator. Update version, add documentation and references about
support for Spot. Describe the new semantics of the --formulafile support for Spot. Describe the new semantics of the --formulafile
@ -133,7 +143,7 @@
log file. log file.
* configure.ac: Add test for the setsid library function. * configure.ac: Add test for the setsid library function.
2004-07-31 Heikki Tauriainen <heikki.tauriainen@hut.fi> 2004-07-31 Heikki Tauriainen <heikki.tauriainen@hut.fi>
* src/Product.h (ProductEdge::edge_1, ProductEdge::edge_2): * src/Product.h (ProductEdge::edge_1, ProductEdge::edge_2):
@ -187,7 +197,7 @@
* doc/texinfo.tex: New upstream version. * doc/texinfo.tex: New upstream version.
* doc/lbtt.texi: Update to edition 1.1.0. * doc/lbtt.texi: Update to edition 1.1.0.
* NEWS: Update. * NEWS: Update.
2004-07-02 Heikki Tauriainen <heikki.tauriainen@hut.fi> 2004-07-02 Heikki Tauriainen <heikki.tauriainen@hut.fi>
* src/UserCommandReader.cc (parseCommand): Recognize * src/UserCommandReader.cc (parseCommand): Recognize
@ -266,13 +276,13 @@
New files for providing specializations of the general product New files for providing specializations of the general product
computation operation applicable to Büchi automata and state computation operation applicable to Büchi automata and state
spaces. spaces.
* src/Makefile.am: Add BuchiProduct.h, BuchiProduct.cc, * src/Makefile.am: Add BuchiProduct.h, BuchiProduct.cc,
Product.h, SccCollection.h and StateSpaceProduct.h to Product.h, SccCollection.h and StateSpaceProduct.h to
lbtt_SOURCES. lbtt_SOURCES.
Remove ProductAutomaton.h, ProductAutomaton.cc and Remove ProductAutomaton.h, ProductAutomaton.cc and
SccIterator.h from lbtt_SOURCES. SccIterator.h from lbtt_SOURCES.
* src/Graph.h.in (Graph::EdgeContainerType, Graph::Path): New * src/Graph.h.in (Graph::EdgeContainerType, Graph::Path): New
type definitions. type definitions.
(Graph::PathElement): New class. (Graph::PathElement): New class.
@ -346,7 +356,7 @@
(printAcceptingCycle): Update parameter list and documentation. (printAcceptingCycle): Update parameter list and documentation.
Display all relevant information about an accepting execution Display all relevant information about an accepting execution
of a Büchi automaton. of a Büchi automaton.
2004-05-18 Heikki Tauriainen <heikki.tauriainen@hut.fi> 2004-05-18 Heikki Tauriainen <heikki.tauriainen@hut.fi>
* configure.ac (YACC): Do not add `-d' here. * configure.ac (YACC): Do not add `-d' here.
@ -374,7 +384,7 @@
* src/NeverClaim-lex.ll: Add %option nounput to avoid a * src/NeverClaim-lex.ll: Add %option nounput to avoid a
compiler warning. compiler warning.
* src/ExternalTranslator.h: Include the TempFsysName.h header. * src/ExternalTranslator.h: Include the TempFsysName.h header.
(ExternalTranslator::TempFileObject): Remove. (ExternalTranslator::TempFileObject): Remove.
(ExternalTranslator::registerTempFileObject): Change (ExternalTranslator::registerTempFileObject): Change
@ -484,7 +494,7 @@
command line option. command line option.
(printCommandHelp): Update the description of the `formula' (printCommandHelp): Update the description of the `formula'
command. command.
* src/UserCommandReader.cc (executeUserCommands): Accept one * src/UserCommandReader.cc (executeUserCommands): Accept one
optional parameter for the `formula' command. Pass the input optional parameter for the `formula' command. Pass the input
tokens as an additional parameter in the printFormula call. tokens as an additional parameter in the printFormula call.
@ -514,7 +524,7 @@
* src/TempFsysName.h, src/TempFsysName.cc New files. * src/TempFsysName.h, src/TempFsysName.cc New files.
* src/Makefile.am: Add TempFsysName.h and TempFsysName.cc to * src/Makefile.am: Add TempFsysName.h and TempFsysName.cc to
lbtt_SOURCES. lbtt_SOURCES.
* src/TestRoundInfo.h: Include the TempFsysName.h header. * src/TestRoundInfo.h: Include the TempFsysName.h header.
(TestRoundInfo::formula_file_name[]) (TestRoundInfo::formula_file_name[])
(TestRoundInfo::automaton_file_name) (TestRoundInfo::automaton_file_name)
@ -522,7 +532,7 @@
TempFsysName*. TempFsysName*.
(TestRoundInfo::TestRoundInfo): Initialize temporary file (TestRoundInfo::TestRoundInfo): Initialize temporary file
name pointers to 0. name pointers to 0.
* src/main.cc: Include the TempFsysName.h header. * src/main.cc: Include the TempFsysName.h header.
(allocateTempFilenames, deallocateTempFilenames): New functions. (allocateTempFilenames, deallocateTempFilenames): New functions.
(abortHandler): New signal handler. (abortHandler): New signal handler.
@ -867,7 +877,7 @@
after colon in output. Return 3 if an unexpected exception after colon in output. Return 3 if an unexpected exception
occurred. In this case print an additional newline before the occurred. In this case print an additional newline before the
error message. error message.
2004-02-19 Heikki Tauriainen <heikki.tauriainen@hut.fi> 2004-02-19 Heikki Tauriainen <heikki.tauriainen@hut.fi>
* src/StringUtil.h: Include the IntervalList.h header. * src/StringUtil.h: Include the IntervalList.h header.
@ -935,7 +945,7 @@
Reformat the automata file format section to avoid overfull lines Reformat the automata file format section to avoid overfull lines
in dvi generation. in dvi generation.
Fix description of the Algorithm block used with lbtt-translate. Fix description of the Algorithm block used with lbtt-translate.
* doc/testprocedure.txt, doc/intersectioncheck.txt: Add initial * doc/testprocedure.txt, doc/intersectioncheck.txt: Add initial
newlines. newlines.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2009
* Heikki Tauriainen <Heikki.Tauriainen@tkk.fi> * Heikki Tauriainen <Heikki.Tauriainen@tkk.fi>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
@ -94,58 +94,7 @@ extern int yylex(); /* Reads the next token
* the lexer). * the lexer).
*/ */
void yyerror(const char* error_message); /* Fwd. definition. See below. */
/******************************************************************************
*
* Function for reporting parse errors.
*
*****************************************************************************/
/* ========================================================================= */
void yyerror(const char* error_message)
/* ----------------------------------------------------------------------------
*
* Description: Function for reporting parse errors.
*
* Arguments: error_message -- An error message.
*
* Returns: Nothing. Instead, throws a
* Configuration::ConfigurationException initialized with the
* given error message.
*
* ------------------------------------------------------------------------- */
{
const string unknown_token(yytext);
string msg;
switch (expected_token)
{
case CFG_BLOCK_ID :
msg = "`" + unknown_token + "' is not a valid block identifier";
break;
case CFG_OPTION_ID :
if (!unknown_token.empty())
msg = "`" + unknown_token + "' is not a valid option identifier";
else
msg = "'}' expected at the end of block";
break;
case CFG_LBRACE :
msg = "`{' expected after block identifier";
break;
case CFG_EQUALS :
msg = "`=' expected after option identifier";
break;
case CFG_VALUE :
msg = "value for option expected";
break;
default :
msg = error_message;
break;
}
throw Configuration::ConfigurationException(config_file_line_number, msg);
}
%} %}
@ -632,6 +581,57 @@ formula_option: CFG_ABBREVIATEDOPERATORS equals_value
/******************************************************************************
*
* Function for reporting parse errors.
*
*****************************************************************************/
/* ========================================================================= */
void yyerror(const char* error_message)
/* ----------------------------------------------------------------------------
*
* Description: Function for reporting parse errors.
*
* Arguments: error_message -- An error message.
*
* Returns: Nothing. Instead, throws a
* Configuration::ConfigurationException initialized with the
* given error message.
*
* ------------------------------------------------------------------------- */
{
const string unknown_token(yytext);
string msg;
switch (expected_token)
{
case CFG_BLOCK_ID :
msg = "`" + unknown_token + "' is not a valid block identifier";
break;
case CFG_OPTION_ID :
if (!unknown_token.empty())
msg = "`" + unknown_token + "' is not a valid option identifier";
else
msg = "'}' expected at the end of block";
break;
case CFG_LBRACE :
msg = "`{' expected after block identifier";
break;
case CFG_EQUALS :
msg = "`=' expected after option identifier";
break;
case CFG_VALUE :
msg = "value for option expected";
break;
default :
msg = error_message;
break;
}
throw Configuration::ConfigurationException(config_file_line_number, msg);
}
/****************************************************************************** /******************************************************************************
* *
* Main interface to the parser. * Main interface to the parser.