From a17b4bd836aa172c3ff9560201f747b6a4e083b2 Mon Sep 17 00:00:00 2001 From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz> Date: Mon, 14 Nov 2016 09:21:06 +0100 Subject: [PATCH] proper templating of trim algo --- alib2algo/src/automaton/simplify/Trim.cpp | 7 ------- alib2algo/src/automaton/simplify/Trim.h | 8 ++++++++ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/alib2algo/src/automaton/simplify/Trim.cpp b/alib2algo/src/automaton/simplify/Trim.cpp index f159f5a202..13e43c6834 100644 --- a/alib2algo/src/automaton/simplify/Trim.cpp +++ b/alib2algo/src/automaton/simplify/Trim.cpp @@ -6,8 +6,6 @@ */ #include "Trim.h" -#include "UselessStatesRemover.h" -#include "UnreachableStatesRemover.h" #include <automaton/FSM/ExtendedNFA.h> #include <automaton/FSM/CompactNFA.h> @@ -19,11 +17,6 @@ namespace automaton { namespace simplify { -template<class T> -T Trim::trim( const T & fsm ) { - return UnreachableStatesRemover::remove(UselessStatesRemover::remove(fsm)); -} - auto TrimDFA = Trim::RegistratorWrapper<automaton::DFA<>, automaton::DFA<>>(Trim::trim); auto TrimNFA = Trim::RegistratorWrapper<automaton::NFA < > , automaton::NFA < > >(Trim::trim); auto TrimMultiInitialStateNFA = Trim::RegistratorWrapper<automaton::MultiInitialStateNFA < > , automaton::MultiInitialStateNFA < > >(Trim::trim); diff --git a/alib2algo/src/automaton/simplify/Trim.h b/alib2algo/src/automaton/simplify/Trim.h index cf19571ad1..077a58f0c5 100644 --- a/alib2algo/src/automaton/simplify/Trim.h +++ b/alib2algo/src/automaton/simplify/Trim.h @@ -11,6 +11,9 @@ #include <core/multipleDispatch.hpp> #include <automaton/Automaton.h> +#include "UselessStatesRemover.h" +#include "UnreachableStatesRemover.h" + namespace automaton { namespace simplify { @@ -26,6 +29,11 @@ public: static T trim( const T & fsm ); }; +template<class T> +T Trim::trim( const T & fsm ) { + return UnreachableStatesRemover::remove(UselessStatesRemover::remove(fsm)); +} + } /* namespace simplify */ } /* namespace automaton */ -- GitLab