Commit 2cc7c253 authored by Alexandre Duret-Lutz's avatar Alexandre Duret-Lutz
Browse files

[lbtt] Adjust parser to Bison 2.4.1.

parent 35298429
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>
* src/main.cc: Include <climits> for LONG_MAX. lbtt won't
......@@ -25,13 +35,13 @@
Update description of the --formulafile command line option.
(Configuration::print): Do not display a file name when reading
formulas from standard input.
* src/SpotWrapper.h, src/SpotWrapper.cc: Merge files from
Spot 0.2 (contributed by Alexandre Duret-Lutz); remove #pragma
definitions.
* src/ExternalTranslator.h, src/Makefile.in, src/translate.cc:
Merge changes from Spot 0.2 (contributed by Alexandre Duret-Lutz).
* doc/lbtt.texi: Fix typo in URL of the FormulaOptions block
generator. Update version, add documentation and references about
support for Spot. Describe the new semantics of the --formulafile
......@@ -133,7 +143,7 @@
log file.
* configure.ac: Add test for the setsid library function.
2004-07-31 Heikki Tauriainen <heikki.tauriainen@hut.fi>
* src/Product.h (ProductEdge::edge_1, ProductEdge::edge_2):
......@@ -187,7 +197,7 @@
* doc/texinfo.tex: New upstream version.
* doc/lbtt.texi: Update to edition 1.1.0.
* NEWS: Update.
2004-07-02 Heikki Tauriainen <heikki.tauriainen@hut.fi>
* src/UserCommandReader.cc (parseCommand): Recognize
......@@ -266,13 +276,13 @@
New files for providing specializations of the general product
computation operation applicable to Bchi automata and state
spaces.
* src/Makefile.am: Add BuchiProduct.h, BuchiProduct.cc,
Product.h, SccCollection.h and StateSpaceProduct.h to
lbtt_SOURCES.
Remove ProductAutomaton.h, ProductAutomaton.cc and
SccIterator.h from lbtt_SOURCES.
* src/Graph.h.in (Graph::EdgeContainerType, Graph::Path): New
type definitions.
(Graph::PathElement): New class.
......@@ -346,7 +356,7 @@
(printAcceptingCycle): Update parameter list and documentation.
Display all relevant information about an accepting execution
of a Bchi automaton.
2004-05-18 Heikki Tauriainen <heikki.tauriainen@hut.fi>
* configure.ac (YACC): Do not add `-d' here.
......@@ -374,7 +384,7 @@
* src/NeverClaim-lex.ll: Add %option nounput to avoid a
compiler warning.
* src/ExternalTranslator.h: Include the TempFsysName.h header.
(ExternalTranslator::TempFileObject): Remove.
(ExternalTranslator::registerTempFileObject): Change
......@@ -484,7 +494,7 @@
command line option.
(printCommandHelp): Update the description of the `formula'
command.
* src/UserCommandReader.cc (executeUserCommands): Accept one
optional parameter for the `formula' command. Pass the input
tokens as an additional parameter in the printFormula call.
......@@ -514,7 +524,7 @@
* src/TempFsysName.h, src/TempFsysName.cc New files.
* src/Makefile.am: Add TempFsysName.h and TempFsysName.cc to
lbtt_SOURCES.
* src/TestRoundInfo.h: Include the TempFsysName.h header.
(TestRoundInfo::formula_file_name[])
(TestRoundInfo::automaton_file_name)
......@@ -522,7 +532,7 @@
TempFsysName*.
(TestRoundInfo::TestRoundInfo): Initialize temporary file
name pointers to 0.
* src/main.cc: Include the TempFsysName.h header.
(allocateTempFilenames, deallocateTempFilenames): New functions.
(abortHandler): New signal handler.
......@@ -867,7 +877,7 @@
after colon in output. Return 3 if an unexpected exception
occurred. In this case print an additional newline before the
error message.
2004-02-19 Heikki Tauriainen <heikki.tauriainen@hut.fi>
* src/StringUtil.h: Include the IntervalList.h header.
......@@ -935,7 +945,7 @@
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.
......
/*
* 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>
*
* This program is free software; you can redistribute it and/or
......@@ -94,58 +94,7 @@ extern int yylex(); /* Reads the next token
* the lexer).
*/
/******************************************************************************
*
* 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);
}
void yyerror(const char* error_message); /* Fwd. definition. See below. */
%}
......@@ -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.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment