tl: fix detection of goto

Fixes #559.

* spot/tl/print.cc (strip_star_not): Only match a full star.
* tests/core/sugar.test: Add test case.
This commit is contained in:
Alexandre Duret-Lutz 2024-02-06 22:37:34 +01:00
parent 94ab42612a
commit db168f97e6
3 changed files with 14 additions and 0 deletions

4
NEWS
View file

@ -219,6 +219,10 @@ New in spot 2.11.6.dev (not yet released)
fail to color some transiant edges when the "acd" option was
activated.
- The formula printer incorrectly replaced a SERE like "(!a)[*3];a"
by "a[->]". The latter should only replace "(!a)[*];a".
(Issue #559.)
New in spot 2.11.6 (2023-08-01)
Bug fixes:

View file

@ -348,6 +348,8 @@ namespace spot
static formula
strip_star_not(formula f)
{
if (!f.is_Kleene_star())
return nullptr;
return f.get_child_of({op::Star, op::Not});
}

View file

@ -59,6 +59,10 @@ F[]a|G[]b|X[]c
{##[1..2] b*}|->e
{a ##[+] b}|->e
{##[*] b}|->e
{(!a)[*];a;b}!
{(!a)[+];a;b}!
{(!a)[*3];a;b}!
{((!a)[*];a)[*2..3];b}!
EOF
ltlfilt -F ok.in > ok.out
@ -99,6 +103,10 @@ FGa | Gb | XGc
{[*1..2];b[*]}[]-> e
{a;[*];b}[]-> e
{[*];b}[]-> e
{a[->];b}!
{{!a}[+];a;b}!
{{!a}[*3];a;b}!
{a[->2..3];b}!
EOF
diff ok.out expect