From f15ac67e925f6973ae76a1b41856142d64488b65 Mon Sep 17 00:00:00 2001
From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz>
Date: Tue, 12 Sep 2017 14:53:53 +0200
Subject: [PATCH] pass ostream parameter to diff helper

---
 alib2aux/src/compare/AutomatonDiff.h | 208 +++++++++++++--------------
 alib2aux/src/compare/DiffAux.h       |  64 ++++-----
 alib2aux/src/compare/GrammarDiff.h   |  78 +++++-----
 alib2aux/src/compare/StringDiff.h    |   4 +-
 4 files changed, 177 insertions(+), 177 deletions(-)

diff --git a/alib2aux/src/compare/AutomatonDiff.h b/alib2aux/src/compare/AutomatonDiff.h
index 33da845d4e..0268c3414b 100644
--- a/alib2aux/src/compare/AutomatonDiff.h
+++ b/alib2aux/src/compare/AutomatonDiff.h
@@ -117,7 +117,7 @@ void AutomatonDiff::printDiff(const automaton::DFA < SymbolType, StateType > & a
 	if(a.getFinalStates() != b.getFinalStates()){
 		out << "FinalStates" << std::endl;
 
-		DiffAux::setDiff(a.getFinalStates(), b.getFinalStates());
+		DiffAux::setDiff ( out, a.getFinalStates(), b.getFinalStates());
 	}
 
 	if(a.getInitialState() != b.getInitialState()) {
@@ -131,19 +131,19 @@ void AutomatonDiff::printDiff(const automaton::DFA < SymbolType, StateType > & a
 	if(a.getInputAlphabet() != b.getInputAlphabet()) {
 		out << "InputAlphabet" << std::endl;
 
-		DiffAux::setDiff(a.getInputAlphabet(), b.getInputAlphabet());
+		DiffAux::setDiff ( out, a.getInputAlphabet(), b.getInputAlphabet());
 	}
 
 	if(a.getStates() != b.getStates()) {
 		out << "States" << std::endl;
 
-		DiffAux::setDiff(a.getStates(), b.getStates());
+		DiffAux::setDiff ( out, a.getStates(), b.getStates());
 	}
 
 	if(a.getTransitions() != b.getTransitions()) {
 		out << "Transitions" << std::endl;
 
-		DiffAux::mapDiff(a.getTransitions(), b.getTransitions());
+		DiffAux::mapDiff ( out, a.getTransitions(), b.getTransitions());
 	}
 }
 
@@ -154,31 +154,31 @@ void AutomatonDiff::printDiff(const automaton::MultiInitialStateNFA < SymbolType
 	if(a.getFinalStates() != b.getFinalStates()){
 		out << "FinalStates" << std::endl;
 
-		DiffAux::setDiff(a.getFinalStates(), b.getFinalStates());
+		DiffAux::setDiff ( out, a.getFinalStates(), b.getFinalStates());
 	}
 
 	if(a.getInitialStates() != b.getInitialStates()) {
 		out << "InitialStates" << std::endl;
 
-		DiffAux::setDiff(a.getInitialStates(), b.getInitialStates());
+		DiffAux::setDiff ( out, a.getInitialStates(), b.getInitialStates());
 	}
 
 	if(a.getInputAlphabet() != b.getInputAlphabet()) {
 		out << "InputAlphabet" << std::endl;
 
-		DiffAux::setDiff(a.getInputAlphabet(), b.getInputAlphabet());
+		DiffAux::setDiff ( out, a.getInputAlphabet(), b.getInputAlphabet());
 	}
 
 	if(a.getStates() != b.getStates()) {
 		out << "States" << std::endl;
 
-		DiffAux::setDiff(a.getStates(), b.getStates());
+		DiffAux::setDiff ( out, a.getStates(), b.getStates());
 	}
 
 	if(a.getTransitions() != b.getTransitions()) {
 		out << "Transitions" << std::endl;
 
-		DiffAux::mapDiff(a.getTransitions(), b.getTransitions());
+		DiffAux::mapDiff ( out, a.getTransitions(), b.getTransitions());
 	}
 }
 
@@ -189,7 +189,7 @@ void AutomatonDiff::printDiff(const automaton::NFA < SymbolType, StateType > & a
 	if(a.getFinalStates() != b.getFinalStates()){
 		out << "FinalStates" << std::endl;
 
-		DiffAux::setDiff(a.getFinalStates(), b.getFinalStates());
+		DiffAux::setDiff ( out, a.getFinalStates(), b.getFinalStates());
 	}
 
 	if(a.getInitialState() != b.getInitialState()) {
@@ -203,19 +203,19 @@ void AutomatonDiff::printDiff(const automaton::NFA < SymbolType, StateType > & a
 	if(a.getInputAlphabet() != b.getInputAlphabet()) {
 		out << "InputAlphabet" << std::endl;
 
-		DiffAux::setDiff(a.getInputAlphabet(), b.getInputAlphabet());
+		DiffAux::setDiff ( out, a.getInputAlphabet(), b.getInputAlphabet());
 	}
 
 	if(a.getStates() != b.getStates()) {
 		out << "States" << std::endl;
 
-		DiffAux::setDiff(a.getStates(), b.getStates());
+		DiffAux::setDiff ( out, a.getStates(), b.getStates());
 	}
 
 	if(a.getTransitions() != b.getTransitions()) {
 		out << "Transitions" << std::endl;
 
-		DiffAux::mapDiff(a.getTransitions(), b.getTransitions());
+		DiffAux::mapDiff ( out, a.getTransitions(), b.getTransitions());
 	}
 }
 
@@ -226,7 +226,7 @@ void AutomatonDiff::printDiff(const automaton::EpsilonNFA < SymbolType, EpsilonT
 	if(a.getFinalStates() != b.getFinalStates()){
 		out << "FinalStates" << std::endl;
 
-		DiffAux::setDiff(a.getFinalStates(), b.getFinalStates());
+		DiffAux::setDiff ( out, a.getFinalStates(), b.getFinalStates());
 	}
 
 	if(a.getInitialState() != b.getInitialState()) {
@@ -240,19 +240,19 @@ void AutomatonDiff::printDiff(const automaton::EpsilonNFA < SymbolType, EpsilonT
 	if(a.getInputAlphabet() != b.getInputAlphabet()) {
 		out << "InputAlphabet" << std::endl;
 
-		DiffAux::setDiff(a.getInputAlphabet(), b.getInputAlphabet());
+		DiffAux::setDiff ( out, a.getInputAlphabet(), b.getInputAlphabet());
 	}
 
 	if(a.getStates() != b.getStates()) {
 		out << "States" << std::endl;
 
-		DiffAux::setDiff(a.getStates(), b.getStates());
+		DiffAux::setDiff ( out, a.getStates(), b.getStates());
 	}
 
 	if(a.getTransitions() != b.getTransitions()) {
 		out << "Transitions" << std::endl;
 
-		DiffAux::mapDiff(a.getTransitions(), b.getTransitions());
+		DiffAux::mapDiff ( out, a.getTransitions(), b.getTransitions());
 	}
 }
 
@@ -263,7 +263,7 @@ void AutomatonDiff::printDiff(const automaton::ExtendedNFA < SymbolType, StateTy
 	if(a.getFinalStates() != b.getFinalStates()){
 		out << "FinalStates" << std::endl;
 
-		DiffAux::setDiff(a.getFinalStates(), b.getFinalStates());
+		DiffAux::setDiff ( out, a.getFinalStates(), b.getFinalStates());
 	}
 
 	if(a.getInitialState() != b.getInitialState()) {
@@ -277,19 +277,19 @@ void AutomatonDiff::printDiff(const automaton::ExtendedNFA < SymbolType, StateTy
 	if(a.getInputAlphabet() != b.getInputAlphabet()) {
 		out << "InputAlphabet" << std::endl;
 
-		DiffAux::setDiff(a.getInputAlphabet(), b.getInputAlphabet());
+		DiffAux::setDiff ( out, a.getInputAlphabet(), b.getInputAlphabet());
 	}
 
 	if(a.getStates() != b.getStates()) {
 		out << "States" << std::endl;
 
-		DiffAux::setDiff(a.getStates(), b.getStates());
+		DiffAux::setDiff ( out, a.getStates(), b.getStates());
 	}
 
 	if(a.getTransitions() != b.getTransitions()) {
 		out << "Transitions" << std::endl;
 
-		DiffAux::mapDiff(a.getTransitions(), b.getTransitions());
+		DiffAux::mapDiff ( out, a.getTransitions(), b.getTransitions());
 	}
 }
 
@@ -300,7 +300,7 @@ void AutomatonDiff::printDiff(const automaton::CompactNFA < SymbolType, StateTyp
 	if(a.getFinalStates() != b.getFinalStates()){
 		out << "FinalStates" << std::endl;
 
-		DiffAux::setDiff(a.getFinalStates(), b.getFinalStates());
+		DiffAux::setDiff ( out, a.getFinalStates(), b.getFinalStates());
 	}
 
 	if(a.getInitialState() != b.getInitialState()) {
@@ -314,19 +314,19 @@ void AutomatonDiff::printDiff(const automaton::CompactNFA < SymbolType, StateTyp
 	if(a.getInputAlphabet() != b.getInputAlphabet()) {
 		out << "InputAlphabet" << std::endl;
 
-		DiffAux::setDiff(a.getInputAlphabet(), b.getInputAlphabet());
+		DiffAux::setDiff ( out, a.getInputAlphabet(), b.getInputAlphabet());
 	}
 
 	if(a.getStates() != b.getStates()) {
 		out << "States" << std::endl;
 
-		DiffAux::setDiff(a.getStates(), b.getStates());
+		DiffAux::setDiff ( out, a.getStates(), b.getStates());
 	}
 
 	if(a.getTransitions() != b.getTransitions()) {
 		out << "Transitions" << std::endl;
 
-		DiffAux::mapDiff(a.getTransitions(), b.getTransitions());
+		DiffAux::mapDiff ( out, a.getTransitions(), b.getTransitions());
 	}
 }
 
@@ -337,25 +337,25 @@ void AutomatonDiff::printDiff(const automaton::DFTA < SymbolType, RankType, Stat
 	if(a.getFinalStates() != b.getFinalStates()){
 		out << "FinalStates" << std::endl;
 
-		DiffAux::setDiff(a.getFinalStates(), b.getFinalStates());
+		DiffAux::setDiff ( out, a.getFinalStates(), b.getFinalStates());
 	}
 
 	if(a.getInputAlphabet() != b.getInputAlphabet()) {
 		out << "InputAlphabet" << std::endl;
 
-		DiffAux::setDiff(a.getInputAlphabet(), b.getInputAlphabet());
+		DiffAux::setDiff ( out, a.getInputAlphabet(), b.getInputAlphabet());
 	}
 
 	if(a.getStates() != b.getStates()) {
 		out << "States" << std::endl;
 
-		DiffAux::setDiff(a.getStates(), b.getStates());
+		DiffAux::setDiff ( out, a.getStates(), b.getStates());
 	}
 
 	if(a.getTransitions() != b.getTransitions()) {
 		out << "Transitions" << std::endl;
 
-		DiffAux::mapDiff(a.getTransitions(), b.getTransitions());
+		DiffAux::mapDiff ( out, a.getTransitions(), b.getTransitions());
 	}
 }
 
@@ -366,25 +366,25 @@ void AutomatonDiff::printDiff(const automaton::NFTA < SymbolType, RankType, Stat
 	if(a.getFinalStates() != b.getFinalStates()){
 		out << "FinalStates" << std::endl;
 
-		DiffAux::setDiff(a.getFinalStates(), b.getFinalStates());
+		DiffAux::setDiff ( out, a.getFinalStates(), b.getFinalStates());
 	}
 
 	if(a.getInputAlphabet() != b.getInputAlphabet()) {
 		out << "InputAlphabet" << std::endl;
 
-		DiffAux::setDiff(a.getInputAlphabet(), b.getInputAlphabet());
+		DiffAux::setDiff ( out, a.getInputAlphabet(), b.getInputAlphabet());
 	}
 
 	if(a.getStates() != b.getStates()) {
 		out << "States" << std::endl;
 
-		DiffAux::setDiff(a.getStates(), b.getStates());
+		DiffAux::setDiff ( out, a.getStates(), b.getStates());
 	}
 
 	if(a.getTransitions() != b.getTransitions()) {
 		out << "Transitions" << std::endl;
 
-		DiffAux::mapDiff(a.getTransitions(), b.getTransitions());
+		DiffAux::mapDiff ( out, a.getTransitions(), b.getTransitions());
 	}
 }
 
@@ -395,7 +395,7 @@ void AutomatonDiff::printDiff(const automaton::DPDA < InputSymbolType, EpsilonTy
 	if(a.getFinalStates() != b.getFinalStates()){
 		out << "FinalStates" << std::endl;
 
-		DiffAux::setDiff(a.getFinalStates(), b.getFinalStates());
+		DiffAux::setDiff ( out, a.getFinalStates(), b.getFinalStates());
 	}
 
 	if(a.getInitialState() != b.getInitialState()) {
@@ -409,13 +409,13 @@ void AutomatonDiff::printDiff(const automaton::DPDA < InputSymbolType, EpsilonTy
 	if(a.getInputAlphabet() != b.getInputAlphabet()) {
 		out << "InputAlphabet" << std::endl;
 
-		DiffAux::setDiff(a.getInputAlphabet(), b.getInputAlphabet());
+		DiffAux::setDiff ( out, a.getInputAlphabet(), b.getInputAlphabet());
 	}
 
 	if(a.getPushdownStoreAlphabet() != b.getPushdownStoreAlphabet()) {
 		out << "StackAlphabet" << std::endl;
 
-		DiffAux::setDiff(a.getPushdownStoreAlphabet(), b.getPushdownStoreAlphabet());
+		DiffAux::setDiff ( out, a.getPushdownStoreAlphabet(), b.getPushdownStoreAlphabet());
 	}
 
 	if(a.getInitialSymbol() != b.getInitialSymbol()) {
@@ -429,13 +429,13 @@ void AutomatonDiff::printDiff(const automaton::DPDA < InputSymbolType, EpsilonTy
 	if(a.getStates() != b.getStates()) {
 		out << "States" << std::endl;
 
-		DiffAux::setDiff(a.getStates(), b.getStates());
+		DiffAux::setDiff ( out, a.getStates(), b.getStates());
 	}
 
 	if(a.getTransitions() != b.getTransitions()) {
 		out << "Transitions" << std::endl;
 
-		DiffAux::mapDiff(a.getTransitions(), b.getTransitions());
+		DiffAux::mapDiff ( out, a.getTransitions(), b.getTransitions());
 	}
 }
 
@@ -446,7 +446,7 @@ void AutomatonDiff::printDiff(const automaton::NPDA < InputSymbolType, EpsilonTy
 	if(a.getFinalStates() != b.getFinalStates()){
 		out << "FinalStates" << std::endl;
 
-		DiffAux::setDiff(a.getFinalStates(), b.getFinalStates());
+		DiffAux::setDiff ( out, a.getFinalStates(), b.getFinalStates());
 	}
 
 	if(a.getInitialState() != b.getInitialState()) {
@@ -460,13 +460,13 @@ void AutomatonDiff::printDiff(const automaton::NPDA < InputSymbolType, EpsilonTy
 	if(a.getInputAlphabet() != b.getInputAlphabet()) {
 		out << "InputAlphabet" << std::endl;
 
-		DiffAux::setDiff(a.getInputAlphabet(), b.getInputAlphabet());
+		DiffAux::setDiff ( out, a.getInputAlphabet(), b.getInputAlphabet());
 	}
 
 	if(a.getPushdownStoreAlphabet() != b.getPushdownStoreAlphabet()) {
 		out << "StackAlphabet" << std::endl;
 
-		DiffAux::setDiff(a.getPushdownStoreAlphabet(), b.getPushdownStoreAlphabet());
+		DiffAux::setDiff ( out, a.getPushdownStoreAlphabet(), b.getPushdownStoreAlphabet());
 	}
 
 	if(a.getInitialSymbol() != b.getInitialSymbol()) {
@@ -480,13 +480,13 @@ void AutomatonDiff::printDiff(const automaton::NPDA < InputSymbolType, EpsilonTy
 	if(a.getStates() != b.getStates()) {
 		out << "States" << std::endl;
 
-		DiffAux::setDiff(a.getStates(), b.getStates());
+		DiffAux::setDiff ( out, a.getStates(), b.getStates());
 	}
 
 	if(a.getTransitions() != b.getTransitions()) {
 		out << "Transitions" << std::endl;
 
-		DiffAux::mapDiff(a.getTransitions(), b.getTransitions());
+		DiffAux::mapDiff ( out, a.getTransitions(), b.getTransitions());
 	}
 }
 
@@ -497,7 +497,7 @@ void AutomatonDiff::printDiff(const automaton::InputDrivenDPDA < InputSymbolType
 	if(a.getFinalStates() != b.getFinalStates()){
 		out << "FinalStates" << std::endl;
 
-		DiffAux::setDiff(a.getFinalStates(), b.getFinalStates());
+		DiffAux::setDiff ( out, a.getFinalStates(), b.getFinalStates());
 	}
 
 	if(a.getInitialState() != b.getInitialState()) {
@@ -511,13 +511,13 @@ void AutomatonDiff::printDiff(const automaton::InputDrivenDPDA < InputSymbolType
 	if(a.getInputAlphabet() != b.getInputAlphabet()) {
 		out << "InputAlphabet" << std::endl;
 
-		DiffAux::setDiff(a.getInputAlphabet(), b.getInputAlphabet());
+		DiffAux::setDiff ( out, a.getInputAlphabet(), b.getInputAlphabet());
 	}
 
 	if(a.getPushdownStoreAlphabet() != b.getPushdownStoreAlphabet()) {
 		out << "StackAlphabet" << std::endl;
 
-		DiffAux::setDiff(a.getPushdownStoreAlphabet(), b.getPushdownStoreAlphabet());
+		DiffAux::setDiff ( out, a.getPushdownStoreAlphabet(), b.getPushdownStoreAlphabet());
 	}
 
 	if(a.getInitialSymbol() != b.getInitialSymbol()) {
@@ -531,19 +531,19 @@ void AutomatonDiff::printDiff(const automaton::InputDrivenDPDA < InputSymbolType
 	if(a.getStates() != b.getStates()) {
 		out << "States" << std::endl;
 
-		DiffAux::setDiff(a.getStates(), b.getStates());
+		DiffAux::setDiff ( out, a.getStates(), b.getStates());
 	}
 
 	if(a.getPushdownStoreOperations() != b.getPushdownStoreOperations()) {
 		out << "PushdownStoreOperations" << std::endl;
 
-		DiffAux::mapDiff(a.getPushdownStoreOperations(), b.getPushdownStoreOperations());
+		DiffAux::mapDiff ( out, a.getPushdownStoreOperations(), b.getPushdownStoreOperations());
 	}
 
 	if(a.getTransitions() != b.getTransitions()) {
 		out << "Transitions" << std::endl;
 
-		DiffAux::mapDiff(a.getTransitions(), b.getTransitions());
+		DiffAux::mapDiff ( out, a.getTransitions(), b.getTransitions());
 	}
 }
 
@@ -554,7 +554,7 @@ void AutomatonDiff::printDiff(const automaton::InputDrivenNPDA < InputSymbolType
 	if(a.getFinalStates() != b.getFinalStates()){
 		out << "FinalStates" << std::endl;
 
-		DiffAux::setDiff(a.getFinalStates(), b.getFinalStates());
+		DiffAux::setDiff ( out, a.getFinalStates(), b.getFinalStates());
 	}
 
 	if(a.getInitialState() != b.getInitialState()) {
@@ -568,13 +568,13 @@ void AutomatonDiff::printDiff(const automaton::InputDrivenNPDA < InputSymbolType
 	if(a.getInputAlphabet() != b.getInputAlphabet()) {
 		out << "InputAlphabet" << std::endl;
 
-		DiffAux::setDiff(a.getInputAlphabet(), b.getInputAlphabet());
+		DiffAux::setDiff ( out, a.getInputAlphabet(), b.getInputAlphabet());
 	}
 
 	if(a.getPushdownStoreAlphabet() != b.getPushdownStoreAlphabet()) {
 		out << "StackAlphabet" << std::endl;
 
-		DiffAux::setDiff(a.getPushdownStoreAlphabet(), b.getPushdownStoreAlphabet());
+		DiffAux::setDiff ( out, a.getPushdownStoreAlphabet(), b.getPushdownStoreAlphabet());
 	}
 
 	if(a.getInitialSymbol() != b.getInitialSymbol()) {
@@ -588,19 +588,19 @@ void AutomatonDiff::printDiff(const automaton::InputDrivenNPDA < InputSymbolType
 	if(a.getStates() != b.getStates()) {
 		out << "States" << std::endl;
 
-		DiffAux::setDiff(a.getStates(), b.getStates());
+		DiffAux::setDiff ( out, a.getStates(), b.getStates());
 	}
 
 	if(a.getPushdownStoreOperations() != b.getPushdownStoreOperations()) {
 		out << "PushdownStoreOperations" << std::endl;
 
-		DiffAux::mapDiff(a.getPushdownStoreOperations(), b.getPushdownStoreOperations());
+		DiffAux::mapDiff ( out, a.getPushdownStoreOperations(), b.getPushdownStoreOperations());
 	}
 
 	if(a.getTransitions() != b.getTransitions()) {
 		out << "Transitions" << std::endl;
 
-		DiffAux::mapDiff(a.getTransitions(), b.getTransitions());
+		DiffAux::mapDiff ( out, a.getTransitions(), b.getTransitions());
 	}
 }
 
@@ -611,7 +611,7 @@ void AutomatonDiff::printDiff(const automaton::VisiblyPushdownDPDA < InputSymbol
 	if(a.getFinalStates() != b.getFinalStates()){
 		out << "FinalStates" << std::endl;
 
-		DiffAux::setDiff(a.getFinalStates(), b.getFinalStates());
+		DiffAux::setDiff ( out, a.getFinalStates(), b.getFinalStates());
 	}
 
 	if(a.getInitialState() != b.getInitialState()) {
@@ -625,25 +625,25 @@ void AutomatonDiff::printDiff(const automaton::VisiblyPushdownDPDA < InputSymbol
 	if(a.getCallInputAlphabet() != b.getCallInputAlphabet()) {
 		out << "CallInputAlphabet" << std::endl;
 
-		DiffAux::setDiff(a.getCallInputAlphabet(), b.getCallInputAlphabet());
+		DiffAux::setDiff ( out, a.getCallInputAlphabet(), b.getCallInputAlphabet());
 	}
 
 	if(a.getReturnInputAlphabet() != b.getReturnInputAlphabet()) {
 		out << "ReturnInputAlphabet" << std::endl;
 
-		DiffAux::setDiff(a.getReturnInputAlphabet(), b.getReturnInputAlphabet());
+		DiffAux::setDiff ( out, a.getReturnInputAlphabet(), b.getReturnInputAlphabet());
 	}
 
 	if(a.getLocalInputAlphabet() != b.getLocalInputAlphabet()) {
 		out << "LocalInputAlphabet" << std::endl;
 
-		DiffAux::setDiff(a.getLocalInputAlphabet(), b.getLocalInputAlphabet());
+		DiffAux::setDiff ( out, a.getLocalInputAlphabet(), b.getLocalInputAlphabet());
 	}
 
 	if(a.getPushdownStoreAlphabet() != b.getPushdownStoreAlphabet()) {
 		out << "StackAlphabet" << std::endl;
 
-		DiffAux::setDiff(a.getPushdownStoreAlphabet(), b.getPushdownStoreAlphabet());
+		DiffAux::setDiff ( out, a.getPushdownStoreAlphabet(), b.getPushdownStoreAlphabet());
 	}
 
 	if(a.getBottomOfTheStackSymbol() != b.getBottomOfTheStackSymbol()) {
@@ -657,25 +657,25 @@ void AutomatonDiff::printDiff(const automaton::VisiblyPushdownDPDA < InputSymbol
 	if(a.getStates() != b.getStates()) {
 		out << "States" << std::endl;
 
-		DiffAux::setDiff(a.getStates(), b.getStates());
+		DiffAux::setDiff ( out, a.getStates(), b.getStates());
 	}
 
 	if(a.getCallTransitions() != b.getCallTransitions()) {
 		out << "CallTransitions" << std::endl;
 
-		DiffAux::mapDiff(a.getCallTransitions(), b.getCallTransitions());
+		DiffAux::mapDiff ( out, a.getCallTransitions(), b.getCallTransitions());
 	}
 
 	if(a.getReturnTransitions() != b.getReturnTransitions()) {
 		out << "ReturnTransitions" << std::endl;
 
-		DiffAux::mapDiff(a.getReturnTransitions(), b.getReturnTransitions());
+		DiffAux::mapDiff ( out, a.getReturnTransitions(), b.getReturnTransitions());
 	}
 
 	if(a.getLocalTransitions() != b.getLocalTransitions()) {
 		out << "LocalTransitions" << std::endl;
 
-		DiffAux::mapDiff(a.getLocalTransitions(), b.getLocalTransitions());
+		DiffAux::mapDiff ( out, a.getLocalTransitions(), b.getLocalTransitions());
 	}
 }
 
@@ -686,37 +686,37 @@ void AutomatonDiff::printDiff(const automaton::VisiblyPushdownNPDA < InputSymbol
 	if(a.getFinalStates() != b.getFinalStates()){
 		out << "FinalStates" << std::endl;
 
-		DiffAux::setDiff(a.getFinalStates(), b.getFinalStates());
+		DiffAux::setDiff ( out, a.getFinalStates(), b.getFinalStates());
 	}
 
 	if(a.getInitialStates() != b.getInitialStates()) {
 		out << "Initial states" << std::endl;
 
-		DiffAux::setDiff(a.getInitialStates(), b.getInitialStates());
+		DiffAux::setDiff ( out, a.getInitialStates(), b.getInitialStates());
 	}
 
 	if(a.getCallInputAlphabet() != b.getCallInputAlphabet()) {
 		out << "CallInputAlphabet" << std::endl;
 
-		DiffAux::setDiff(a.getCallInputAlphabet(), b.getCallInputAlphabet());
+		DiffAux::setDiff ( out, a.getCallInputAlphabet(), b.getCallInputAlphabet());
 	}
 
 	if(a.getReturnInputAlphabet() != b.getReturnInputAlphabet()) {
 		out << "ReturnInputAlphabet" << std::endl;
 
-		DiffAux::setDiff(a.getReturnInputAlphabet(), b.getReturnInputAlphabet());
+		DiffAux::setDiff ( out, a.getReturnInputAlphabet(), b.getReturnInputAlphabet());
 	}
 
 	if(a.getLocalInputAlphabet() != b.getLocalInputAlphabet()) {
 		out << "LocalInputAlphabet" << std::endl;
 
-		DiffAux::setDiff(a.getLocalInputAlphabet(), b.getLocalInputAlphabet());
+		DiffAux::setDiff ( out, a.getLocalInputAlphabet(), b.getLocalInputAlphabet());
 	}
 
 	if(a.getPushdownStoreAlphabet() != b.getPushdownStoreAlphabet()) {
 		out << "StackAlphabet" << std::endl;
 
-		DiffAux::setDiff(a.getPushdownStoreAlphabet(), b.getPushdownStoreAlphabet());
+		DiffAux::setDiff ( out, a.getPushdownStoreAlphabet(), b.getPushdownStoreAlphabet());
 	}
 
 	if(a.getBottomOfTheStackSymbol() != b.getBottomOfTheStackSymbol()) {
@@ -730,25 +730,25 @@ void AutomatonDiff::printDiff(const automaton::VisiblyPushdownNPDA < InputSymbol
 	if(a.getStates() != b.getStates()) {
 		out << "States" << std::endl;
 
-		DiffAux::setDiff(a.getStates(), b.getStates());
+		DiffAux::setDiff ( out, a.getStates(), b.getStates());
 	}
 
 	if(a.getCallTransitions() != b.getCallTransitions()) {
 		out << "CallTransitions" << std::endl;
 
-		DiffAux::mapDiff(a.getCallTransitions(), b.getCallTransitions());
+		DiffAux::mapDiff ( out, a.getCallTransitions(), b.getCallTransitions());
 	}
 
 	if(a.getReturnTransitions() != b.getReturnTransitions()) {
 		out << "ReturnTransitions" << std::endl;
 
-		DiffAux::mapDiff(a.getReturnTransitions(), b.getReturnTransitions());
+		DiffAux::mapDiff ( out, a.getReturnTransitions(), b.getReturnTransitions());
 	}
 
 	if(a.getLocalTransitions() != b.getLocalTransitions()) {
 		out << "LocalTransitions" << std::endl;
 
-		DiffAux::mapDiff(a.getLocalTransitions(), b.getLocalTransitions());
+		DiffAux::mapDiff ( out, a.getLocalTransitions(), b.getLocalTransitions());
 	}
 }
 
@@ -759,7 +759,7 @@ void AutomatonDiff::printDiff(const automaton::RealTimeHeightDeterministicDPDA <
 	if(a.getFinalStates() != b.getFinalStates()){
 		out << "FinalStates" << std::endl;
 
-		DiffAux::setDiff(a.getFinalStates(), b.getFinalStates());
+		DiffAux::setDiff ( out, a.getFinalStates(), b.getFinalStates());
 	}
 
 	if(a.getInitialState() != b.getInitialState()) {
@@ -773,13 +773,13 @@ void AutomatonDiff::printDiff(const automaton::RealTimeHeightDeterministicDPDA <
 	if(a.getInputAlphabet() != b.getInputAlphabet()) {
 		out << "InputAlphabet" << std::endl;
 
-		DiffAux::setDiff(a.getInputAlphabet(), b.getInputAlphabet());
+		DiffAux::setDiff ( out, a.getInputAlphabet(), b.getInputAlphabet());
 	}
 
 	if(a.getPushdownStoreAlphabet() != b.getPushdownStoreAlphabet()) {
 		out << "StackAlphabet" << std::endl;
 
-		DiffAux::setDiff(a.getPushdownStoreAlphabet(), b.getPushdownStoreAlphabet());
+		DiffAux::setDiff ( out, a.getPushdownStoreAlphabet(), b.getPushdownStoreAlphabet());
 	}
 
 	if(a.getBottomOfTheStackSymbol() != b.getBottomOfTheStackSymbol()) {
@@ -793,25 +793,25 @@ void AutomatonDiff::printDiff(const automaton::RealTimeHeightDeterministicDPDA <
 	if(a.getStates() != b.getStates()) {
 		out << "States" << std::endl;
 
-		DiffAux::setDiff(a.getStates(), b.getStates());
+		DiffAux::setDiff ( out, a.getStates(), b.getStates());
 	}
 
 	if(a.getCallTransitions() != b.getCallTransitions()) {
 		out << "CallTransitions" << std::endl;
 
-		DiffAux::mapDiff(a.getCallTransitions(), b.getCallTransitions());
+		DiffAux::mapDiff ( out, a.getCallTransitions(), b.getCallTransitions());
 	}
 
 	if(a.getReturnTransitions() != b.getReturnTransitions()) {
 		out << "ReturnTransitions" << std::endl;
 
-		DiffAux::mapDiff(a.getReturnTransitions(), b.getReturnTransitions());
+		DiffAux::mapDiff ( out, a.getReturnTransitions(), b.getReturnTransitions());
 	}
 
 	if(a.getLocalTransitions() != b.getLocalTransitions()) {
 		out << "LocalTransitions" << std::endl;
 
-		DiffAux::mapDiff(a.getLocalTransitions(), b.getLocalTransitions());
+		DiffAux::mapDiff ( out, a.getLocalTransitions(), b.getLocalTransitions());
 	}
 }
 
@@ -822,25 +822,25 @@ void AutomatonDiff::printDiff(const automaton::RealTimeHeightDeterministicNPDA <
 	if(a.getFinalStates() != b.getFinalStates()){
 		out << "FinalStates" << std::endl;
 
-		DiffAux::setDiff(a.getFinalStates(), b.getFinalStates());
+		DiffAux::setDiff ( out, a.getFinalStates(), b.getFinalStates());
 	}
 
 	if(a.getInitialStates() != b.getInitialStates()) {
 		out << "Initial states" << std::endl;
 
-		DiffAux::setDiff(a.getInitialStates(), b.getInitialStates());
+		DiffAux::setDiff ( out, a.getInitialStates(), b.getInitialStates());
 	}
 
 	if(a.getInputAlphabet() != b.getInputAlphabet()) {
 		out << "InputAlphabet" << std::endl;
 
-		DiffAux::setDiff(a.getInputAlphabet(), b.getInputAlphabet());
+		DiffAux::setDiff ( out, a.getInputAlphabet(), b.getInputAlphabet());
 	}
 
 	if(a.getPushdownStoreAlphabet() != b.getPushdownStoreAlphabet()) {
 		out << "StackAlphabet" << std::endl;
 
-		DiffAux::setDiff(a.getPushdownStoreAlphabet(), b.getPushdownStoreAlphabet());
+		DiffAux::setDiff ( out, a.getPushdownStoreAlphabet(), b.getPushdownStoreAlphabet());
 	}
 
 	if(a.getBottomOfTheStackSymbol() != b.getBottomOfTheStackSymbol()) {
@@ -854,25 +854,25 @@ void AutomatonDiff::printDiff(const automaton::RealTimeHeightDeterministicNPDA <
 	if(a.getStates() != b.getStates()) {
 		out << "States" << std::endl;
 
-		DiffAux::setDiff(a.getStates(), b.getStates());
+		DiffAux::setDiff ( out, a.getStates(), b.getStates());
 	}
 
 	if(a.getCallTransitions() != b.getCallTransitions()) {
 		out << "CallTransitions" << std::endl;
 
-		DiffAux::mapDiff(a.getCallTransitions(), b.getCallTransitions());
+		DiffAux::mapDiff ( out, a.getCallTransitions(), b.getCallTransitions());
 	}
 
 	if(a.getReturnTransitions() != b.getReturnTransitions()) {
 		out << "ReturnTransitions" << std::endl;
 
-		DiffAux::mapDiff(a.getReturnTransitions(), b.getReturnTransitions());
+		DiffAux::mapDiff ( out, a.getReturnTransitions(), b.getReturnTransitions());
 	}
 
 	if(a.getLocalTransitions() != b.getLocalTransitions()) {
 		out << "LocalTransitions" << std::endl;
 
-		DiffAux::mapDiff(a.getLocalTransitions(), b.getLocalTransitions());
+		DiffAux::mapDiff ( out, a.getLocalTransitions(), b.getLocalTransitions());
 	}
 }
 
@@ -883,7 +883,7 @@ void AutomatonDiff::printDiff(const automaton::SinglePopDPDA < InputSymbolType,
 	if(a.getFinalStates() != b.getFinalStates()){
 		out << "FinalStates" << std::endl;
 
-		DiffAux::setDiff(a.getFinalStates(), b.getFinalStates());
+		DiffAux::setDiff ( out, a.getFinalStates(), b.getFinalStates());
 	}
 
 	if(a.getInitialState() != b.getInitialState()) {
@@ -897,13 +897,13 @@ void AutomatonDiff::printDiff(const automaton::SinglePopDPDA < InputSymbolType,
 	if(a.getInputAlphabet() != b.getInputAlphabet()) {
 		out << "InputAlphabet" << std::endl;
 
-		DiffAux::setDiff(a.getInputAlphabet(), b.getInputAlphabet());
+		DiffAux::setDiff ( out, a.getInputAlphabet(), b.getInputAlphabet());
 	}
 
 	if(a.getPushdownStoreAlphabet() != b.getPushdownStoreAlphabet()) {
 		out << "StackAlphabet" << std::endl;
 
-		DiffAux::setDiff(a.getPushdownStoreAlphabet(), b.getPushdownStoreAlphabet());
+		DiffAux::setDiff ( out, a.getPushdownStoreAlphabet(), b.getPushdownStoreAlphabet());
 	}
 
 	if(a.getInitialSymbol() != b.getInitialSymbol()) {
@@ -917,13 +917,13 @@ void AutomatonDiff::printDiff(const automaton::SinglePopDPDA < InputSymbolType,
 	if(a.getStates() != b.getStates()) {
 		out << "States" << std::endl;
 
-		DiffAux::setDiff(a.getStates(), b.getStates());
+		DiffAux::setDiff ( out, a.getStates(), b.getStates());
 	}
 
 	if(a.getTransitions() != b.getTransitions()) {
 		out << "Transitions" << std::endl;
 
-		DiffAux::mapDiff(a.getTransitions(), b.getTransitions());
+		DiffAux::mapDiff ( out, a.getTransitions(), b.getTransitions());
 	}
 }
 
@@ -934,7 +934,7 @@ void AutomatonDiff::printDiff(const automaton::SinglePopNPDA < InputSymbolType,
 	if(a.getFinalStates() != b.getFinalStates()){
 		out << "FinalStates" << std::endl;
 
-		DiffAux::setDiff(a.getFinalStates(), b.getFinalStates());
+		DiffAux::setDiff ( out, a.getFinalStates(), b.getFinalStates());
 	}
 
 	if(a.getInitialState() != b.getInitialState()) {
@@ -948,13 +948,13 @@ void AutomatonDiff::printDiff(const automaton::SinglePopNPDA < InputSymbolType,
 	if(a.getInputAlphabet() != b.getInputAlphabet()) {
 		out << "InputAlphabet" << std::endl;
 
-		DiffAux::setDiff(a.getInputAlphabet(), b.getInputAlphabet());
+		DiffAux::setDiff ( out, a.getInputAlphabet(), b.getInputAlphabet());
 	}
 
 	if(a.getPushdownStoreAlphabet() != b.getPushdownStoreAlphabet()) {
 		out << "StackAlphabet" << std::endl;
 
-		DiffAux::setDiff(a.getPushdownStoreAlphabet(), b.getPushdownStoreAlphabet());
+		DiffAux::setDiff ( out, a.getPushdownStoreAlphabet(), b.getPushdownStoreAlphabet());
 	}
 
 	if(a.getInitialSymbol() != b.getInitialSymbol()) {
@@ -968,13 +968,13 @@ void AutomatonDiff::printDiff(const automaton::SinglePopNPDA < InputSymbolType,
 	if(a.getStates() != b.getStates()) {
 		out << "States" << std::endl;
 
-		DiffAux::setDiff(a.getStates(), b.getStates());
+		DiffAux::setDiff ( out, a.getStates(), b.getStates());
 	}
 
 	if(a.getTransitions() != b.getTransitions()) {
 		out << "Transitions" << std::endl;
 
-		DiffAux::mapDiff(a.getTransitions(), b.getTransitions());
+		DiffAux::mapDiff ( out, a.getTransitions(), b.getTransitions());
 	}
 }
 
@@ -993,7 +993,7 @@ void AutomatonDiff::printDiff(const automaton::OneTapeDTM < SymbolType, StateTyp
 	if(a.getFinalStates() != b.getFinalStates()){
 		out << "FinalStates" << std::endl;
 
-		DiffAux::setDiff(a.getFinalStates(), b.getFinalStates());
+		DiffAux::setDiff ( out, a.getFinalStates(), b.getFinalStates());
 	}
 
 	if(a.getInitialState() != b.getInitialState()) {
@@ -1007,25 +1007,25 @@ void AutomatonDiff::printDiff(const automaton::OneTapeDTM < SymbolType, StateTyp
 	if(a.getInputAlphabet() != b.getInputAlphabet()) {
 		out << "InputAlphabet" << std::endl;
 
-		DiffAux::setDiff(a.getInputAlphabet(), b.getInputAlphabet());
+		DiffAux::setDiff ( out, a.getInputAlphabet(), b.getInputAlphabet());
 	}
 
 	if(a.getStates() != b.getStates()) {
 		out << "States" << std::endl;
 
-		DiffAux::setDiff(a.getStates(), b.getStates());
+		DiffAux::setDiff ( out, a.getStates(), b.getStates());
 	}
 
 	if(a.getTapeAlphabet() != b.getTapeAlphabet()) {
 		out << "TapeAlphabet" << std::endl;
 
-		DiffAux::setDiff(a.getTapeAlphabet(), b.getTapeAlphabet());
+		DiffAux::setDiff ( out, a.getTapeAlphabet(), b.getTapeAlphabet());
 	}
 
 	if(a.getTransitions() != b.getTransitions()) {
 		out << "Transitions" << std::endl;
 
-		DiffAux::mapDiff(a.getTransitions(), b.getTransitions());
+		DiffAux::mapDiff ( out, a.getTransitions(), b.getTransitions());
 	}
 }
 
diff --git a/alib2aux/src/compare/DiffAux.h b/alib2aux/src/compare/DiffAux.h
index fc4c0453db..2696cd796c 100644
--- a/alib2aux/src/compare/DiffAux.h
+++ b/alib2aux/src/compare/DiffAux.h
@@ -19,34 +19,34 @@ namespace compare {
 class DiffAux {
 public:
 	template < class T >
-	static void setDiff ( const ext::set < T > & a, const ext::set < T > & b );
+	static void setDiff ( std::ostream & out, const ext::set < T > & a, const ext::set < T > & b );
 	template < class T >
-	static void vectorDiff ( const ext::vector < T > & a, const ext::vector < T > & b );
+	static void vectorDiff ( std::ostream & out, const ext::vector < T > & a, const ext::vector < T > & b );
 	template < class T >
-	static void listDiff ( const ext::list < T > & a, const ext::list < T > & b );
+	static void listDiff ( std::ostream & out, const ext::list < T > & a, const ext::list < T > & b );
 	template < class T, class R >
-	static void mapDiff ( const ext::map < T, R > & a, const ext::map < T, R > & b );
+	static void mapDiff ( std::ostream & out, const ext::map < T, R > & a, const ext::map < T, R > & b );
 };
 
 template <class T>
-void DiffAux::setDiff(const ext::set<T> &a, const ext::set<T> &b) {
+void DiffAux::setDiff(std::ostream & out, const ext::set<T> &a, const ext::set<T> &b) {
 	ext::set<T> aMinusB;
 	std::set_difference(a.begin(), a.end(), b.begin(), b.end(), std::inserter(aMinusB, aMinusB.begin()));
 
 	ext::set<T> bMinusA;
 	std::set_difference(b.begin(), b.end(), a.begin(), a.end(), std::inserter(bMinusA, bMinusA.begin()));
 
-	for(typename ext::set<T>::const_iterator iter = aMinusB.begin(); iter != aMinusB.end(); iter++) {
-		std::cout << "< " << *iter << std::endl;
-	}
-	std::cout << "---" << std::endl;
-	for(typename ext::set<T>::const_iterator iter = bMinusA.begin(); iter != bMinusA.end(); iter++) {
-		std::cout << "> " << *iter << std::endl;
-	}
+	for(typename ext::set<T>::const_iterator iter = aMinusB.begin(); iter != aMinusB.end(); iter++)
+		out << "< " << *iter << std::endl;
+
+	out << "---" << std::endl;
+
+	for(typename ext::set<T>::const_iterator iter = bMinusA.begin(); iter != bMinusA.end(); iter++)
+		out << "> " << *iter << std::endl;
 }
 
 template < class T >
-void DiffAux::vectorDiff ( const ext::vector < T > & a, const ext::vector < T > & b ) {
+void DiffAux::vectorDiff (std::ostream & out,  const ext::vector < T > & a, const ext::vector < T > & b ) {
 	ext::vector < T > aMinusB;
 	std::set_difference ( a.begin ( ), a.end ( ), b.begin ( ), b.end ( ), std::inserter ( aMinusB, aMinusB.begin ( ) ) );
 
@@ -54,46 +54,46 @@ void DiffAux::vectorDiff ( const ext::vector < T > & a, const ext::vector < T >
 	std::set_difference ( b.begin ( ), b.end ( ), a.begin ( ), a.end ( ), std::inserter ( bMinusA, bMinusA.begin ( ) ) );
 
 	for ( typename ext::vector < T >::const_iterator iter = aMinusB.begin ( ); iter != aMinusB.end ( ); iter++ )
-		std::cout << "< " << * iter << std::endl;
+		out << "< " << * iter << std::endl;
 
-	std::cout << "---" << std::endl;
+	out << "---" << std::endl;
 
 	for ( typename ext::vector < T >::const_iterator iter = bMinusA.begin ( ); iter != bMinusA.end ( ); iter++ )
-		std::cout << "> " << * iter << std::endl;
+		out << "> " << * iter << std::endl;
 }
 
 template <class T>
-void DiffAux::listDiff(const ext::list<T> &a, const ext::list<T> &b) {
+void DiffAux::listDiff(std::ostream & out, const ext::list<T> &a, const ext::list<T> &b) {
 	ext::list<T> aMinusB;
 	std::set_difference(a.begin(), a.end(), b.begin(), b.end(), std::inserter(aMinusB, aMinusB.begin()));
 
 	ext::list<T> bMinusA;
 	std::set_difference(b.begin(), b.end(), a.begin(), a.end(), std::inserter(bMinusA, bMinusA.begin()));
 
-	for(typename ext::list<T>::const_iterator iter = aMinusB.begin(); iter != aMinusB.end(); iter++) {
-		std::cout << "< " << *iter << std::endl;
-	}
-	std::cout << "---" << std::endl;
-	for(typename ext::list<T>::const_iterator iter = bMinusA.begin(); iter != bMinusA.end(); iter++) {
-		std::cout << "> " << *iter << std::endl;
-	}
+	for(typename ext::list<T>::const_iterator iter = aMinusB.begin(); iter != aMinusB.end(); iter++)
+		out << "< " << *iter << std::endl;
+
+	out << "---" << std::endl;
+
+	for(typename ext::list<T>::const_iterator iter = bMinusA.begin(); iter != bMinusA.end(); iter++)
+		out << "> " << *iter << std::endl;
 }
 
 template <class T, class R>
-void DiffAux::mapDiff(const ext::map<T, R> &a, const ext::map<T, R> &b) {
+void DiffAux::mapDiff(std::ostream & out, const ext::map<T, R> &a, const ext::map<T, R> &b) {
 	ext::map<T, R> aMinusB;
 	std::set_difference(a.begin(), a.end(), b.begin(), b.end(), std::inserter(aMinusB, aMinusB.begin()));
 
 	ext::map<T, R> bMinusA;
 	std::set_difference(b.begin(), b.end(), a.begin(), a.end(), std::inserter(bMinusA, bMinusA.begin()));
 
-	for(typename ext::map<T, R>::const_iterator iter = aMinusB.begin(); iter != aMinusB.end(); iter++) {
-		std::cout << "< " << iter->first << ", " << iter->second << std::endl;
-	}
-	std::cout << "---" << std::endl;
-	for(typename ext::map<T, R>::const_iterator iter = bMinusA.begin(); iter != bMinusA.end(); iter++) {
-		std::cout << "> " << iter->first << ", " << iter->second << std::endl;
-	}
+	for(typename ext::map<T, R>::const_iterator iter = aMinusB.begin(); iter != aMinusB.end(); iter++)
+		out << "< " << iter->first << ", " << iter->second << std::endl;
+
+	out << "---" << std::endl;
+
+	for(typename ext::map<T, R>::const_iterator iter = bMinusA.begin(); iter != bMinusA.end(); iter++)
+		out << "> " << iter->first << ", " << iter->second << std::endl;
 }
 
 } /* namespace compare */
diff --git a/alib2aux/src/compare/GrammarDiff.h b/alib2aux/src/compare/GrammarDiff.h
index c50a78f740..be0709ae6a 100644
--- a/alib2aux/src/compare/GrammarDiff.h
+++ b/alib2aux/src/compare/GrammarDiff.h
@@ -95,13 +95,13 @@ void GrammarDiff::printDiff(const grammar::LeftLG < SymbolType > & a, const gram
 	if(a.getNonterminalAlphabet() != b.getNonterminalAlphabet()) {
 		out << "Nonterminal alphabet" << std::endl;
 
-		DiffAux::setDiff(a.getNonterminalAlphabet(), b.getNonterminalAlphabet());
+		DiffAux::setDiff ( out, a.getNonterminalAlphabet(), b.getNonterminalAlphabet());
 	}
 
 	if(a.getRules() != b.getRules()){
 		out << "Rules" << std::endl;
 
-		DiffAux::mapDiff(a.getRules(), b.getRules());
+		DiffAux::mapDiff ( out, a.getRules(), b.getRules());
 	}
 
 	if(a.getInitialSymbol() != b.getInitialSymbol()){
@@ -115,7 +115,7 @@ void GrammarDiff::printDiff(const grammar::LeftLG < SymbolType > & a, const gram
 	if(a.getTerminalAlphabet() != b.getTerminalAlphabet()) {
 		out << "Terminal alphabet" << std::endl;
 
-		DiffAux::setDiff(a.getTerminalAlphabet(), b.getTerminalAlphabet());
+		DiffAux::setDiff ( out, a.getTerminalAlphabet(), b.getTerminalAlphabet());
 	}
 }
 
@@ -126,13 +126,13 @@ void GrammarDiff::printDiff(const grammar::LeftRG < SymbolType > & a, const gram
 	if(a.getNonterminalAlphabet() != b.getNonterminalAlphabet()) {
 		out << "Nonterminal alphabet" << std::endl;
 
-		DiffAux::setDiff(a.getNonterminalAlphabet(), b.getNonterminalAlphabet());
+		DiffAux::setDiff ( out, a.getNonterminalAlphabet(), b.getNonterminalAlphabet());
 	}
 
 	if(a.getRules() != b.getRules()){
 		out << "Rules" << std::endl;
 
-		DiffAux::mapDiff(a.getRules(), b.getRules());
+		DiffAux::mapDiff ( out, a.getRules(), b.getRules());
 	}
 
 	if(a.getInitialSymbol() != b.getInitialSymbol()){
@@ -146,7 +146,7 @@ void GrammarDiff::printDiff(const grammar::LeftRG < SymbolType > & a, const gram
 	if(a.getTerminalAlphabet() != b.getTerminalAlphabet()) {
 		out << "Terminal alphabet" << std::endl;
 
-		DiffAux::setDiff(a.getTerminalAlphabet(), b.getTerminalAlphabet());
+		DiffAux::setDiff ( out, a.getTerminalAlphabet(), b.getTerminalAlphabet());
 	}
 }
 
@@ -157,13 +157,13 @@ void GrammarDiff::printDiff(const grammar::RightLG < SymbolType > & a, const gra
 	if(a.getNonterminalAlphabet() != b.getNonterminalAlphabet()) {
 		out << "Nonterminal alphabet" << std::endl;
 
-		DiffAux::setDiff(a.getNonterminalAlphabet(), b.getNonterminalAlphabet());
+		DiffAux::setDiff ( out, a.getNonterminalAlphabet(), b.getNonterminalAlphabet());
 	}
 
 	if(a.getRules() != b.getRules()){
 		out << "Rules" << std::endl;
 
-		DiffAux::mapDiff(a.getRules(), b.getRules());
+		DiffAux::mapDiff ( out, a.getRules(), b.getRules());
 	}
 
 	if(a.getInitialSymbol() != b.getInitialSymbol()){
@@ -177,7 +177,7 @@ void GrammarDiff::printDiff(const grammar::RightLG < SymbolType > & a, const gra
 	if(a.getTerminalAlphabet() != b.getTerminalAlphabet()) {
 		out << "Terminal alphabet" << std::endl;
 
-		DiffAux::setDiff(a.getTerminalAlphabet(), b.getTerminalAlphabet());
+		DiffAux::setDiff ( out, a.getTerminalAlphabet(), b.getTerminalAlphabet());
 	}
 }
 
@@ -188,13 +188,13 @@ void GrammarDiff::printDiff(const grammar::RightRG < SymbolType > & a, const gra
 	if(a.getNonterminalAlphabet() != b.getNonterminalAlphabet()) {
 		out << "Nonterminal alphabet" << std::endl;
 
-		DiffAux::setDiff(a.getNonterminalAlphabet(), b.getNonterminalAlphabet());
+		DiffAux::setDiff ( out, a.getNonterminalAlphabet(), b.getNonterminalAlphabet());
 	}
 
 	if(a.getRules() != b.getRules()){
 		out << "Rules" << std::endl;
 
-		DiffAux::mapDiff(a.getRules(), b.getRules());
+		DiffAux::mapDiff ( out, a.getRules(), b.getRules());
 	}
 
 	if(a.getInitialSymbol() != b.getInitialSymbol()){
@@ -208,7 +208,7 @@ void GrammarDiff::printDiff(const grammar::RightRG < SymbolType > & a, const gra
 	if(a.getTerminalAlphabet() != b.getTerminalAlphabet()) {
 		out << "Terminal alphabet" << std::endl;
 
-		DiffAux::setDiff(a.getTerminalAlphabet(), b.getTerminalAlphabet());
+		DiffAux::setDiff ( out, a.getTerminalAlphabet(), b.getTerminalAlphabet());
 	}
 }
 
@@ -219,13 +219,13 @@ void GrammarDiff::printDiff(const grammar::LG < SymbolType > & a, const grammar:
 	if(a.getNonterminalAlphabet() != b.getNonterminalAlphabet()) {
 		out << "Nonterminal alphabet" << std::endl;
 
-		DiffAux::setDiff(a.getNonterminalAlphabet(), b.getNonterminalAlphabet());
+		DiffAux::setDiff ( out, a.getNonterminalAlphabet(), b.getNonterminalAlphabet());
 	}
 
 	if(a.getRules() != b.getRules()){
 		out << "Rules" << std::endl;
 
-		DiffAux::mapDiff(a.getRules(), b.getRules());
+		DiffAux::mapDiff ( out, a.getRules(), b.getRules());
 	}
 
 	if(a.getInitialSymbol() != b.getInitialSymbol()){
@@ -239,7 +239,7 @@ void GrammarDiff::printDiff(const grammar::LG < SymbolType > & a, const grammar:
 	if(a.getTerminalAlphabet() != b.getTerminalAlphabet()) {
 		out << "Terminal alphabet" << std::endl;
 
-		DiffAux::setDiff(a.getTerminalAlphabet(), b.getTerminalAlphabet());
+		DiffAux::setDiff ( out, a.getTerminalAlphabet(), b.getTerminalAlphabet());
 	}
 }
 
@@ -250,13 +250,13 @@ void GrammarDiff::printDiff(const grammar::CFG < SymbolType > & a, const grammar
 	if(a.getNonterminalAlphabet() != b.getNonterminalAlphabet()) {
 		out << "Nonterminal alphabet" << std::endl;
 
-		DiffAux::setDiff(a.getNonterminalAlphabet(), b.getNonterminalAlphabet());
+		DiffAux::setDiff ( out, a.getNonterminalAlphabet(), b.getNonterminalAlphabet());
 	}
 
 	if(a.getRules() != b.getRules()){
 		out << "Rules" << std::endl;
 
-		DiffAux::mapDiff(a.getRules(), b.getRules());
+		DiffAux::mapDiff ( out, a.getRules(), b.getRules());
 	}
 
 	if(a.getInitialSymbol() != b.getInitialSymbol()){
@@ -270,7 +270,7 @@ void GrammarDiff::printDiff(const grammar::CFG < SymbolType > & a, const grammar
 	if(a.getTerminalAlphabet() != b.getTerminalAlphabet()) {
 		out << "Terminal alphabet" << std::endl;
 
-		DiffAux::setDiff(a.getTerminalAlphabet(), b.getTerminalAlphabet());
+		DiffAux::setDiff ( out, a.getTerminalAlphabet(), b.getTerminalAlphabet());
 	}
 }
 
@@ -281,13 +281,13 @@ void GrammarDiff::printDiff(const grammar::EpsilonFreeCFG < SymbolType > & a, co
 	if(a.getNonterminalAlphabet() != b.getNonterminalAlphabet()) {
 		out << "Nonterminal alphabet" << std::endl;
 
-		DiffAux::setDiff(a.getNonterminalAlphabet(), b.getNonterminalAlphabet());
+		DiffAux::setDiff ( out, a.getNonterminalAlphabet(), b.getNonterminalAlphabet());
 	}
 
 	if(a.getRules() != b.getRules()){
 		out << "Rules" << std::endl;
 
-		DiffAux::mapDiff(a.getRules(), b.getRules());
+		DiffAux::mapDiff ( out, a.getRules(), b.getRules());
 	}
 
 	if(a.getInitialSymbol() != b.getInitialSymbol()){
@@ -301,7 +301,7 @@ void GrammarDiff::printDiff(const grammar::EpsilonFreeCFG < SymbolType > & a, co
 	if(a.getTerminalAlphabet() != b.getTerminalAlphabet()) {
 		out << "Terminal alphabet" << std::endl;
 
-		DiffAux::setDiff(a.getTerminalAlphabet(), b.getTerminalAlphabet());
+		DiffAux::setDiff ( out, a.getTerminalAlphabet(), b.getTerminalAlphabet());
 	}
 }
 
@@ -312,13 +312,13 @@ void GrammarDiff::printDiff(const grammar::CNF < SymbolType > & a, const grammar
 	if(a.getNonterminalAlphabet() != b.getNonterminalAlphabet()) {
 		out << "Nonterminal alphabet" << std::endl;
 
-		DiffAux::setDiff(a.getNonterminalAlphabet(), b.getNonterminalAlphabet());
+		DiffAux::setDiff ( out, a.getNonterminalAlphabet(), b.getNonterminalAlphabet());
 	}
 
 	if(a.getRules() != b.getRules()){
 		out << "Rules" << std::endl;
 
-		DiffAux::mapDiff(a.getRules(), b.getRules());
+		DiffAux::mapDiff ( out, a.getRules(), b.getRules());
 	}
 
 	if(a.getInitialSymbol() != b.getInitialSymbol()){
@@ -332,7 +332,7 @@ void GrammarDiff::printDiff(const grammar::CNF < SymbolType > & a, const grammar
 	if(a.getTerminalAlphabet() != b.getTerminalAlphabet()) {
 		out << "Terminal alphabet" << std::endl;
 
-		DiffAux::setDiff(a.getTerminalAlphabet(), b.getTerminalAlphabet());
+		DiffAux::setDiff ( out, a.getTerminalAlphabet(), b.getTerminalAlphabet());
 	}
 }
 
@@ -343,13 +343,13 @@ void GrammarDiff::printDiff(const grammar::GNF < SymbolType > & a, const grammar
 	if(a.getNonterminalAlphabet() != b.getNonterminalAlphabet()) {
 		out << "Nonterminal alphabet" << std::endl;
 
-		DiffAux::setDiff(a.getNonterminalAlphabet(), b.getNonterminalAlphabet());
+		DiffAux::setDiff ( out, a.getNonterminalAlphabet(), b.getNonterminalAlphabet());
 	}
 
 	if(a.getRules() != b.getRules()){
 		out << "Rules" << std::endl;
 
-		DiffAux::mapDiff(a.getRules(), b.getRules());
+		DiffAux::mapDiff ( out, a.getRules(), b.getRules());
 	}
 
 	if(a.getInitialSymbol() != b.getInitialSymbol()){
@@ -363,7 +363,7 @@ void GrammarDiff::printDiff(const grammar::GNF < SymbolType > & a, const grammar
 	if(a.getTerminalAlphabet() != b.getTerminalAlphabet()) {
 		out << "Terminal alphabet" << std::endl;
 
-		DiffAux::setDiff(a.getTerminalAlphabet(), b.getTerminalAlphabet());
+		DiffAux::setDiff ( out, a.getTerminalAlphabet(), b.getTerminalAlphabet());
 	}
 }
 
@@ -374,13 +374,13 @@ void GrammarDiff::printDiff(const grammar::CSG < SymbolType > & a, const grammar
 	if(a.getNonterminalAlphabet() != b.getNonterminalAlphabet()) {
 		out << "Nonterminal alphabet" << std::endl;
 
-		DiffAux::setDiff(a.getNonterminalAlphabet(), b.getNonterminalAlphabet());
+		DiffAux::setDiff ( out, a.getNonterminalAlphabet(), b.getNonterminalAlphabet());
 	}
 
 	if(a.getRules() != b.getRules()){
 		out << "Rules" << std::endl;
 
-		DiffAux::mapDiff(a.getRules(), b.getRules());
+		DiffAux::mapDiff ( out, a.getRules(), b.getRules());
 	}
 
 	if(a.getInitialSymbol() != b.getInitialSymbol()){
@@ -394,7 +394,7 @@ void GrammarDiff::printDiff(const grammar::CSG < SymbolType > & a, const grammar
 	if(a.getTerminalAlphabet() != b.getTerminalAlphabet()) {
 		out << "Terminal alphabet" << std::endl;
 
-		DiffAux::setDiff(a.getTerminalAlphabet(), b.getTerminalAlphabet());
+		DiffAux::setDiff ( out, a.getTerminalAlphabet(), b.getTerminalAlphabet());
 	}
 }
 
@@ -405,13 +405,13 @@ void GrammarDiff::printDiff(const grammar::NonContractingGrammar < SymbolType >
 	if(a.getNonterminalAlphabet() != b.getNonterminalAlphabet()) {
 		out << "Nonterminal alphabet" << std::endl;
 
-		DiffAux::setDiff(a.getNonterminalAlphabet(), b.getNonterminalAlphabet());
+		DiffAux::setDiff ( out, a.getNonterminalAlphabet(), b.getNonterminalAlphabet());
 	}
 
 	if(a.getRules() != b.getRules()){
 		out << "Rules" << std::endl;
 
-		DiffAux::mapDiff(a.getRules(), b.getRules());
+		DiffAux::mapDiff ( out, a.getRules(), b.getRules());
 	}
 
 	if(a.getInitialSymbol() != b.getInitialSymbol()){
@@ -425,7 +425,7 @@ void GrammarDiff::printDiff(const grammar::NonContractingGrammar < SymbolType >
 	if(a.getTerminalAlphabet() != b.getTerminalAlphabet()) {
 		out << "Terminal alphabet" << std::endl;
 
-		DiffAux::setDiff(a.getTerminalAlphabet(), b.getTerminalAlphabet());
+		DiffAux::setDiff ( out, a.getTerminalAlphabet(), b.getTerminalAlphabet());
 	}
 }
 
@@ -436,13 +436,13 @@ void GrammarDiff::printDiff(const grammar::ContextPreservingUnrestrictedGrammar
 	if(a.getNonterminalAlphabet() != b.getNonterminalAlphabet()) {
 		out << "Nonterminal alphabet" << std::endl;
 
-		DiffAux::setDiff(a.getNonterminalAlphabet(), b.getNonterminalAlphabet());
+		DiffAux::setDiff ( out, a.getNonterminalAlphabet(), b.getNonterminalAlphabet());
 	}
 
 	if(a.getRules() != b.getRules()){
 		out << "Rules" << std::endl;
 
-		DiffAux::mapDiff(a.getRules(), b.getRules());
+		DiffAux::mapDiff ( out, a.getRules(), b.getRules());
 	}
 
 	if(a.getInitialSymbol() != b.getInitialSymbol()){
@@ -456,7 +456,7 @@ void GrammarDiff::printDiff(const grammar::ContextPreservingUnrestrictedGrammar
 	if(a.getTerminalAlphabet() != b.getTerminalAlphabet()) {
 		out << "Terminal alphabet" << std::endl;
 
-		DiffAux::setDiff(a.getTerminalAlphabet(), b.getTerminalAlphabet());
+		DiffAux::setDiff ( out, a.getTerminalAlphabet(), b.getTerminalAlphabet());
 	}
 }
 
@@ -467,13 +467,13 @@ void GrammarDiff::printDiff(const grammar::UnrestrictedGrammar < SymbolType > &
 	if(a.getNonterminalAlphabet() != b.getNonterminalAlphabet()) {
 		out << "Nonterminal alphabet" << std::endl;
 
-		DiffAux::setDiff(a.getNonterminalAlphabet(), b.getNonterminalAlphabet());
+		DiffAux::setDiff ( out, a.getNonterminalAlphabet(), b.getNonterminalAlphabet());
 	}
 
 	if(a.getRules() != b.getRules()){
 		out << "Rules" << std::endl;
 
-		DiffAux::mapDiff(a.getRules(), b.getRules());
+		DiffAux::mapDiff ( out, a.getRules(), b.getRules());
 	}
 
 	if(a.getInitialSymbol() != b.getInitialSymbol()){
@@ -487,7 +487,7 @@ void GrammarDiff::printDiff(const grammar::UnrestrictedGrammar < SymbolType > &
 	if(a.getTerminalAlphabet() != b.getTerminalAlphabet()) {
 		out << "Terminal alphabet" << std::endl;
 
-		DiffAux::setDiff(a.getTerminalAlphabet(), b.getTerminalAlphabet());
+		DiffAux::setDiff ( out, a.getTerminalAlphabet(), b.getTerminalAlphabet());
 	}
 }
 
diff --git a/alib2aux/src/compare/StringDiff.h b/alib2aux/src/compare/StringDiff.h
index 883f9cfc8a..30ea38acf5 100644
--- a/alib2aux/src/compare/StringDiff.h
+++ b/alib2aux/src/compare/StringDiff.h
@@ -51,13 +51,13 @@ void StringDiff::printDiff ( const string::LinearString < SymbolType > & a, cons
 	if ( a.getAlphabet ( ) != b.getAlphabet ( ) ) {
 		out << "Alphabet" << std::endl;
 
-		DiffAux::setDiff ( a.getAlphabet ( ), b.getAlphabet ( ) );
+		DiffAux::setDiff ( out, a.getAlphabet ( ), b.getAlphabet ( ) );
 	}
 
 	if ( a.getContent ( ) != b.getContent ( ) ) {
 		out << "Content" << std::endl;
 
-		DiffAux::vectorDiff ( a.getContent ( ), b.getContent ( ) );
+		DiffAux::vectorDiff ( out, a.getContent ( ), b.getContent ( ) );
 	}
 }
 
-- 
GitLab