Use the same location.hh and position.hh in all parsers.

* src/misc/location.hh, src/misc/position.hh: New files,
from Bison 2.7.
* src/misc/Makefile.am: Distribute them.
* src/eltlparse/Makefile.am, src/eltlparse/eltlparse.yy,
src/eltlparse/parsedecl.hh, src/eltlparse/public.hh,
src/kripkeparse/Makefile.am, src/kripkeparse/kripkeparse.yy,
src/kripkeparse/parsedecl.hh, src/kripkeparse/public.hh,
src/ltlparse/Makefile.am, src/ltlparse/fmterror.cc,
src/ltlparse/ltlparse.yy, src/ltlparse/parsedecl.hh,
src/ltlparse/public.hh, src/neverparse/Makefile.am,
src/neverparse/neverclaimparse.yy, src/neverparse/parsedecl.hh,
src/neverparse/public.hh, src/tgbaparse/Makefile.am,
src/tgbaparse/parsedecl.hh, src/tgbaparse/public.hh,
src/tgbaparse/tgbaparse.yy: Adjust to use and include
misc/location.hh.
* NEWS: Mention this change.
This commit is contained in:
Alexandre Duret-Lutz 2013-06-28 18:12:10 +02:00
parent a0f5d53ea4
commit 8c2d7fcb7f
25 changed files with 436 additions and 125 deletions

View file

@ -1,5 +1,6 @@
## Copyright (C) 2010, 2011 Laboratoire de Recherche et Développement
## de l'Epita (LRDE).
## -*- coding: utf-8 -*-
## Copyright (C) 2010, 2011, 2013 Laboratoire de Recherche et
## Développement de l'Epita (LRDE).
##
## This file is part of Spot, a model checking library.
##
@ -22,10 +23,7 @@ AM_CXXFLAGS = $(WARNING_CXXFLAGS:-Werror=)
neverparsedir = $(pkgincludedir)/neverparse
neverparse_HEADERS = \
public.hh \
location.hh \
position.hh
neverparse_HEADERS = public.hh
noinst_LTLIBRARIES = libneverparse.la
@ -33,8 +31,6 @@ NEVERCLAIMPARSE_YY = neverclaimparse.yy
FROM_NEVERCLAIMPARSE_YY_MAIN = neverclaimparse.cc
FROM_NEVERCLAIMPARSE_YY_OTHERS = \
stack.hh \
position.hh \
location.hh \
neverclaimparse.hh
FROM_NEVERCLAIMPARSE_YY = $(FROM_NEVERCLAIMPARSE_YY_MAIN) $(FROM_NEVERCLAIMPARSE_YY_OTHERS)

View file

@ -25,6 +25,7 @@
%debug
%error-verbose
%lex-param { spot::neverclaim_parse_error_list& error_list }
%define api.location.type "spot::location"
%code requires
{
@ -49,9 +50,6 @@
%code
{
#include "ltlast/constant.hh"
/* Unfortunately Bison 2.3 uses the same guards in all parsers :( */
#undef BISON_POSITION_HH
#undef BISON_LOCATION_HH
#include "ltlparse/public.hh"
/* neverclaimparse.hh and parsedecl.hh include each other recursively.
@ -234,7 +232,7 @@ src_dest: formula opt_dest
i != pel.end(); ++i)
{
// Adjust the diagnostic to the current position.
location here = @1;
spot::location here = @1;
here.end.line = here.begin.line + i->first.end.line - 1;
here.end.column = here.begin.column + i->first.end.column -1;
here.begin.line += i->first.begin.line - 1;
@ -276,7 +274,7 @@ namespace spot
if (neverclaimyyopen(name))
{
error_list.push_back
(neverclaim_parse_error(neverclaimyy::location(),
(neverclaim_parse_error(spot::location(),
std::string("Cannot open file ") + name));
return 0;
}

View file

@ -1,4 +1,5 @@
// Copyright (C) 2010, 2013 Laboratoire de Recherche et Développement
// -*- coding: utf-8 -*-
// Copyright (C) 2010, 2013 Laboratoire de Recherche et Développement
// de l'EPITA.
//
// This file is part of Spot, a model checking library.
@ -21,11 +22,11 @@
#include <string>
#include "neverclaimparse.hh"
#include "location.hh"
#include "misc/location.hh"
# define YY_DECL \
int neverclaimyylex(neverclaimyy::parser::semantic_type *yylval, \
neverclaimyy::location *yylloc, \
spot::location *yylloc, \
spot::neverclaim_parse_error_list& error_list)
YY_DECL;

View file

@ -1,5 +1,6 @@
// Copyright (C) 2010 Laboratoire de Recherche et Développement de
// l'Epita (LRDE).
// -*- coding: utf-8 -*-
// Copyright (C) 2010, 2013 Laboratoire de Recherche et Développement
// de l'Epita (LRDE).
//
// This file is part of Spot, a model checking library.
//
@ -20,10 +21,7 @@
# define SPOT_NEVERPARSE_PUBLIC_HH
# include "tgba/tgbaexplicit.hh"
// Unfortunately Bison 2.3 uses the same guards in all parsers :(
# undef BISON_LOCATION_HH
# undef BISON_POSITION_HH
# include "neverparse/location.hh"
# include "misc/location.hh"
# include "ltlenv/defaultenv.hh"
# include <string>
# include <list>
@ -36,7 +34,7 @@ namespace spot
/// @{
/// \brief A parse diagnostic with its location.
typedef std::pair<neverclaimyy::location, std::string> neverclaim_parse_error;
typedef std::pair<spot::location, std::string> neverclaim_parse_error;
/// \brief A list of parser diagnostics, as filled by parse.
typedef std::list<neverclaim_parse_error> neverclaim_parse_error_list;