remove_fin: ignore more useless transitions

Do not clone transitions that are necessarily part of on accepting
cycle in the main copy of the automaton.

* spot/twaalgos/remfin.cc: Use propagate_marks_vector to ignore more
edges.
* tests/core/remfin.test, tests/python/remfin.py,
tests/python/automata.ipynb: Adjust.
* tests/sanity/style.test: Do not choke on C++17 if statements with
initializer.
This commit is contained in:
Alexandre Duret-Lutz 2020-07-24 15:38:42 +02:00
parent 91db0e1e29
commit 7fbf4e0e3c
6 changed files with 269 additions and 288 deletions

View file

@ -1,6 +1,6 @@
#! /bin/sh
# -*- coding: utf-8 -*-
# Copyright (C) 2009-2019 Laboratoire de Recherche et Développement de
# Copyright (C) 2009-2020 Laboratoire de Recherche et Développement de
# l'Epita (LRDE).
# Copyright (C) 2004, 2005 Laboratoire d'Informatique de Paris 6
# (LIP6), département Systèmes Répartis Coopératifs (SRC), Université
@ -158,7 +158,10 @@ for dir in "$TOP/spot" "$TOP/bin" "$TOP/tests"; do
$GREP '[ ]if ([^()]*).*{' $tmp &&
diag 'Opening { should be on its own line.'
$GREP '[ ]if (.*).*;' $tmp &&
$GREP '[ ]if ([^()]*).*;' $tmp &&
diag 'if body should be on another line.'
$GREP '[ ]if ([^()]*([^()]*)[^()]*).*;' $tmp &&
diag 'if body should be on another line.'
$GREP '[ ]else.*;' $tmp &&