parseaut: fix parsing of /*****/

* spot/parseaut/scanaut.ll: Here.
* tests/core/strength.test: Add a test.
* NEWS: Mention the bug.
This commit is contained in:
Alexandre Duret-Lutz 2016-04-18 18:38:55 +02:00
parent 134982c08b
commit f50486b4cf
3 changed files with 8 additions and 6 deletions

1
NEWS
View file

@ -3,6 +3,7 @@ New in spot 2.0.0a (not yet released)
Bug fixes: Bug fixes:
* Typo in documentation of the -H option in --help output. * Typo in documentation of the -H option in --help output.
* The automaton parser would choke on comments like /******/.
New in spot 2.0 (2016-04-11) New in spot 2.0 (2016-04-11)

View file

@ -76,7 +76,7 @@ identifier [[:alpha:]_][[:alnum:]_.-]*
{eol} yylloc->lines(yyleng); yylloc->step(); {eol} yylloc->lines(yyleng); yylloc->step();
{eol2} yylloc->lines(yyleng / 2); yylloc->step(); {eol2} yylloc->lines(yyleng / 2); yylloc->step();
[ \t\v\f]+ yylloc->step(); [ \t\v\f]+ yylloc->step();
"/""*"+ { "/*" {
orig_cond = YY_START; orig_cond = YY_START;
BEGIN(in_COMMENT); BEGIN(in_COMMENT);
comment_level = 1; comment_level = 1;
@ -281,13 +281,13 @@ identifier [[:alpha:]_][[:alnum:]_.-]*
<in_COMMENT>{ <in_COMMENT>{
"/""*"+ ++comment_level; "/*" ++comment_level;
[^*/\n\r]* continue; [^*/\n\r]* continue;
"/"[^*\n\r]* continue; "/"[^*\n\r]* continue;
"*"+[^*/\n\r]* continue; "*" continue;
{eol} yylloc->lines(yyleng); yylloc->end.column = 1; {eol} yylloc->lines(yyleng); yylloc->end.column = 1;
{eol2} yylloc->lines(yyleng / 2); yylloc->end.column = 1; {eol2} yylloc->lines(yyleng / 2); yylloc->end.column = 1;
"*"+"/" { "*/" {
if (--comment_level == 0) if (--comment_level == 0)
{ {
yylloc->step(); yylloc->step();

View file

@ -1,6 +1,6 @@
#!/bin/sh #!/bin/sh
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Copyright (C) 2015 Laboratoire de Recherche et Developpement # Copyright (C) 2015, 2016 Laboratoire de Recherche et Developpement
# de l'Epita # de l'Epita
# #
# This file is part of Spot, a model checking library. # This file is part of Spot, a model checking library.
@ -588,3 +588,4 @@ State: 4
EOF EOF
diff out expected diff out expected
autfilt -q expected