From f50486b4cf7bbce0b5fc3bf3d27f1880219bcbc9 Mon Sep 17 00:00:00 2001 From: Alexandre Duret-Lutz Date: Mon, 18 Apr 2016 18:38:55 +0200 Subject: [PATCH] parseaut: fix parsing of /*****/ * spot/parseaut/scanaut.ll: Here. * tests/core/strength.test: Add a test. * NEWS: Mention the bug. --- NEWS | 1 + spot/parseaut/scanaut.ll | 10 +++++----- tests/core/strength.test | 3 ++- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/NEWS b/NEWS index f4124ea60..c8f1ae425 100644 --- a/NEWS +++ b/NEWS @@ -3,6 +3,7 @@ New in spot 2.0.0a (not yet released) Bug fixes: * 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) diff --git a/spot/parseaut/scanaut.ll b/spot/parseaut/scanaut.ll index 6f4f66852..efb9891be 100644 --- a/spot/parseaut/scanaut.ll +++ b/spot/parseaut/scanaut.ll @@ -76,7 +76,7 @@ identifier [[:alpha:]_][[:alnum:]_.-]* {eol} yylloc->lines(yyleng); yylloc->step(); {eol2} yylloc->lines(yyleng / 2); yylloc->step(); [ \t\v\f]+ yylloc->step(); -"/""*"+ { +"/*" { orig_cond = YY_START; BEGIN(in_COMMENT); comment_level = 1; @@ -281,13 +281,13 @@ identifier [[:alpha:]_][[:alnum:]_.-]* { - "/""*"+ ++comment_level; + "/*" ++comment_level; [^*/\n\r]* continue; "/"[^*\n\r]* continue; - "*"+[^*/\n\r]* continue; - {eol} yylloc->lines(yyleng); yylloc->end.column = 1; + "*" continue; + {eol} yylloc->lines(yyleng); yylloc->end.column = 1; {eol2} yylloc->lines(yyleng / 2); yylloc->end.column = 1; - "*"+"/" { + "*/" { if (--comment_level == 0) { yylloc->step(); diff --git a/tests/core/strength.test b/tests/core/strength.test index f9e0eb442..f9fe38811 100755 --- a/tests/core/strength.test +++ b/tests/core/strength.test @@ -1,6 +1,6 @@ #!/bin/sh # -*- coding: utf-8 -*- -# Copyright (C) 2015 Laboratoire de Recherche et Developpement +# Copyright (C) 2015, 2016 Laboratoire de Recherche et Developpement # de l'Epita # # This file is part of Spot, a model checking library. @@ -588,3 +588,4 @@ State: 4 EOF diff out expected +autfilt -q expected