Merge branch 'master' into next

* configure.ac, NEWS: Bump version to 1.99a at the same time.
This commit is contained in:
Alexandre Duret-Lutz 2014-09-29 18:07:34 +02:00
commit 8c2efa6615
8 changed files with 222 additions and 37 deletions

View file

@ -69,6 +69,7 @@
using namespace spot::ltl;
static bool accept_all_needed = false;
static bool accept_all_seen = false;
static std::map<std::string, spot::location> labels;
}
%token NEVER "never"
@ -88,7 +89,7 @@ static bool accept_all_seen = false;
%type <str> opt_dest formula_or_ident
%type <p> transition src_dest
%type <list> transitions transition_block
%type <str> ident_list
%type <str> one_ident ident_list
%destructor { delete $$; } <str>
@ -118,13 +119,22 @@ states:
| states ';' state
| states ';'
ident_list:
IDENT ':'
one_ident: IDENT ':'
{
namer->new_state(*$1);
std::pair<std::map<std::string, spot::location>::const_iterator, bool>
res = labels.insert(std::make_pair(*$1, @1));
if (!res.second)
{
error(@1, std::string("redefinition of ") + *$1 + "...");
error(res.first->second, std::string("... ") + *$1 + " previously defined here");
}
$$ = $1;
}
| ident_list IDENT ':'
ident_list: one_ident
| ident_list one_ident
{
namer->alias_state(namer->get_state(*$1), *$2);
// Keep any identifier that starts with accept.
@ -319,6 +329,7 @@ namespace spot
}
accept_all_needed = false;
accept_all_seen = false;
labels.clear();
delete namer;
return result;