From 827ff6155bbf5015f89f68443ddec2106949371d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Pecka?= <peckato1@fit.cvut.cz> Date: Sat, 29 Mar 2014 23:18:30 +0100 Subject: [PATCH] aconversion: Special case in FA -> RRG conversion --- aconversions/src/fa2rg/fa2rrg/FAtoRRGConverter.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/aconversions/src/fa2rg/fa2rrg/FAtoRRGConverter.cpp b/aconversions/src/fa2rg/fa2rrg/FAtoRRGConverter.cpp index 30fc37d17d..3190b40932 100644 --- a/aconversions/src/fa2rg/fa2rrg/FAtoRRGConverter.cpp +++ b/aconversions/src/fa2rg/fa2rrg/FAtoRRGConverter.cpp @@ -40,7 +40,13 @@ RightRegularGrammar FAtoRRGConverter::convert( void ) list<Symbol> leftSide, rightSide; leftSide.push_back( symbolMap.getNonTerminal( transition.getFrom( ) ) ); rightSide.push_back( transition.getInput( ) ); - m_grammar.addRule( Rule( leftSide, rightSide ) ); + + /* + * Rule might already in - consider case: + * \delta(A,a) = F and \delta(B,a) = G, where both F and G are final states + */ + if( ! isInSet( Rule( leftSide, rightSide), m_grammar.getRules( ) ) ) + m_grammar.addRule( Rule( leftSide, rightSide ) ); } } -- GitLab