From d70cefaae345e404e2f8b57023bb6c52c04cddf2 Mon Sep 17 00:00:00 2001
From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz>
Date: Mon, 24 Apr 2017 20:20:27 +0200
Subject: [PATCH] make gastex converter use string composer

---
 aconvert2/src/GasTexConverter.h | 60 ++++++++++++++++-----------------
 1 file changed, 30 insertions(+), 30 deletions(-)

diff --git a/aconvert2/src/GasTexConverter.h b/aconvert2/src/GasTexConverter.h
index ee3bf81758..54765c487e 100644
--- a/aconvert2/src/GasTexConverter.h
+++ b/aconvert2/src/GasTexConverter.h
@@ -872,7 +872,7 @@ std::string GasTexConverter::getStackSymbols(const std::vector<SymbolType>& stac
 		if(i++ !=0) {
 			symbols +=" ";
 		}
-		symbols += std::to_string ( symbol.getData() );
+		symbols += replace ( alib::StringDataFactory::toString ( symbol ), "\"", "\\\"" );
 	}
 	return symbols;
 }
@@ -882,13 +882,13 @@ void GasTexConverter::transitions(const automaton::EpsilonNFA < SymbolType, Epsi
 	std::map<std::pair<std::string, std::string>, std::string> transitionMap;
 	for (const auto& transition : fsm.getTransitions()) {
 		for(const auto& to : transition.second) {
-			std::pair<std::string, std::string> key(std::to_string ( transition.first.first ), std::to_string ( to ) );
+			std::pair<std::string, std::string> key(replace ( alib::StringDataFactory::toString ( transition.first.first ), "\"", "\\\"" ), replace ( alib::StringDataFactory::toString ( to ), "\"", "\\\"" ) );
 
 			std::string symbol;
 			if (transition.first.second.template is<EpsilonType>()) {
 				symbol = "$\\varepsilon$";
 			} else {
-				symbol = std::to_string ( transition.first.second.template get<SymbolType>() );
+				symbol = replace ( alib::StringDataFactory::toString ( transition.first.second.template get<SymbolType>( ) ), "\"", "\\\"" );
 			}
 
 			auto mapIterator = transitionMap.find(key);
@@ -907,9 +907,9 @@ void GasTexConverter::transitions(const automaton::MultiInitialStateNFA < Symbol
 	std::map<std::pair<std::string, std::string>, std::string> transitionMap;
 	for (const auto& transition : fsm.getTransitions()) {
 		for(const auto& to : transition.second) {
-			std::pair<std::string, std::string> key(std::to_string ( transition.first.first ), std::to_string ( to ) );
+			std::pair<std::string, std::string> key(replace ( alib::StringDataFactory::toString ( transition.first.first ), "\"", "\\\"" ), replace ( alib::StringDataFactory::toString ( to ), "\"", "\\\"" ) );
 
-			std::string symbol = std::to_string ( transition.first.second );
+			std::string symbol = replace ( alib::StringDataFactory::toString ( transition.first.second ), "\"", "\\\"" );
 
 			auto mapIterator = transitionMap.find(key);
 			if (mapIterator == transitionMap.end()) {
@@ -927,9 +927,9 @@ void GasTexConverter::transitions(const automaton::NFA < SymbolType, StateType >
 	std::map<std::pair<std::string, std::string>, std::string> transitionMap;
 	for (const auto& transition : fsm.getTransitions()) {
 		for(const auto& to : transition.second) {
-			std::pair<std::string, std::string> key( std::to_string ( transition.first.first ), std::to_string ( to ) );
+			std::pair<std::string, std::string> key( replace ( alib::StringDataFactory::toString ( transition.first.first ), "\"", "\\\"" ), replace ( alib::StringDataFactory::toString ( to ), "\"", "\\\"" ) );
 
-			std::string symbol = std::to_string ( transition.first.second );
+			std::string symbol = replace ( alib::StringDataFactory::toString ( transition.first.second ), "\"", "\\\"" );
 
 			auto mapIterator = transitionMap.find(key);
 			if (mapIterator == transitionMap.end()) {
@@ -946,9 +946,9 @@ template<class SymbolType, class StateType>
 void GasTexConverter::transitions(const automaton::DFA < SymbolType, StateType > & fsm, std::ostream& out) {
 	std::map<std::pair<std::string, std::string>, std::string> transitionMap;
 	for (const auto& transition : fsm.getTransitions()) {
-		std::pair<std::string, std::string> key( std::to_string ( transition.first.first ), std::to_string ( transition.second ) );
+		std::pair<std::string, std::string> key( replace ( alib::StringDataFactory::toString ( transition.first.first ), "\"", "\\\"" ), replace ( alib::StringDataFactory::toString ( transition.second ), "\"", "\\\"" ) );
 
-		std::string symbol = std::to_string ( transition.first.second );
+		std::string symbol = replace ( alib::StringDataFactory::toString ( transition.first.second ), "\"", "\\\"" );
 
 		auto mapIterator = transitionMap.find(key);
 		if (mapIterator == transitionMap.end()) {
@@ -966,7 +966,7 @@ void GasTexConverter::transitions(const automaton::ExtendedNFA < SymbolType, Sta
 
 	for (const auto& transition : fsm.getTransitions()) {
 		for(const auto& to : transition.second) {
-			std::pair<std::string, std::string> key( std::to_string ( transition.first.first ), std::to_string ( to ) );
+			std::pair<std::string, std::string> key( replace ( alib::StringDataFactory::toString ( transition.first.first ), "\"", "\\\"" ), replace ( alib::StringDataFactory::toString ( to ), "\"", "\\\"" ) );
 
 			std::string symbol = replace ( alib::StringDataFactory::toString ( transition.first.second ), "\"", "\\\"" );
 
@@ -987,7 +987,7 @@ void GasTexConverter::transitions(const automaton::CompactNFA < SymbolType, Stat
 
 	for (const auto& transition : fsm.getTransitions()) {
 		for(const auto& to : transition.second) {
-			std::pair<std::string, std::string> key(std::to_string ( transition.first.first ), std::to_string ( to ) );
+			std::pair<std::string, std::string> key(replace ( alib::StringDataFactory::toString ( transition.first.first ), "\"", "\\\"" ), replace ( alib::StringDataFactory::toString ( to ), "\"", "\\\"" ) );
 
 			std::string symbol = replace ( alib::StringDataFactory::toString ( string::stringFrom(transition.first.second )), "\"", "\\\"" );
 
@@ -1017,7 +1017,7 @@ void GasTexConverter::transitions(const automaton::DPDA < InputSymbolType, Epsil
 	std::map<std::pair<std::string, std::string>, std::string> transitionMap;
 
 	for (const auto& transition : pda.getTransitions()) {
-		std::pair<std::string, std::string> key(std::to_string ( std::get<0>(transition.first) ), std::to_string ( transition.second.first ) );
+		std::pair<std::string, std::string> key(replace ( alib::StringDataFactory::toString ( std::get<0>(transition.first ) ), "\"", "\\\"" ), replace ( alib::StringDataFactory::toString ( transition.second.first ), "\"", "\\\"" ) );
 		auto mapIterator = transitionMap.find(key);
 
 		std::string symbol;
@@ -1048,7 +1048,7 @@ void GasTexConverter::transitions(const automaton::SinglePopDPDA < InputSymbolTy
 	std::map<std::pair<std::string, std::string>, std::string> transitionMap;
 
 	for (const auto& transition : pda.getTransitions()) {
-		std::pair<std::string, std::string> key(std::to_string ( std::get<0>(transition.first) ), std::to_string ( transition.second.first ) );
+		std::pair<std::string, std::string> key(replace ( alib::StringDataFactory::toString ( std::get<0>(transition.first ) ), "\"", "\\\"" ), replace ( alib::StringDataFactory::toString ( transition.second.first ), "\"", "\\\"" ) );
 		auto mapIterator = transitionMap.find(key);
 
 		std::string symbol;
@@ -1084,7 +1084,7 @@ void GasTexConverter::transitions(const automaton::InputDrivenDPDA < SymbolType,
 		const auto& push = symbolToPDSOperation.find(std::get<1>(transition.first))->second.second;
 
 		const auto& to = transition.second;
-		std::pair<std::string, std::string> key(std::to_string ( transition.first.first ), std::to_string ( to ) );
+		std::pair<std::string, std::string> key(replace ( alib::StringDataFactory::toString ( transition.first.first ), "\"", "\\\"" ), replace ( alib::StringDataFactory::toString ( to ), "\"", "\\\"" ) );
 		auto mapIterator = transitionMap.find(key);
 
 		std::string symbol = replace ( alib::StringDataFactory::toString ( transition.first.second ), "\"", "\\\"" );
@@ -1115,7 +1115,7 @@ void GasTexConverter::transitions(const automaton::InputDrivenNPDA < InputSymbol
 		const auto& push = symbolToPDSOperation.find(std::get<1>(transition.first))->second.second;
 
 		for(const auto& to : transition.second) {
-			std::pair<std::string, std::string> key( std::to_string ( transition.first.first ), std::to_string ( to ) );
+			std::pair<std::string, std::string> key( replace ( alib::StringDataFactory::toString ( transition.first.first ), "\"", "\\\"" ), replace ( alib::StringDataFactory::toString ( to ), "\"", "\\\"" ) );
 			auto mapIterator = transitionMap.find(key);
 
 			std::string symbol = replace ( alib::StringDataFactory::toString ( transition.first.second ), "\"", "\\\"" );
@@ -1142,7 +1142,7 @@ void GasTexConverter::transitions(const automaton::VisiblyPushdownDPDA < InputSy
 	std::map<std::pair<std::string, std::string>, std::string> transitionMap;
 
 	for (const auto& transition : pda.getCallTransitions()) {
-		std::pair<std::string, std::string> key( std::to_string ( transition.first.first ), std::to_string ( transition.second.first ) );
+		std::pair<std::string, std::string> key( replace ( alib::StringDataFactory::toString ( transition.first.first ), "\"", "\\\"" ), replace ( alib::StringDataFactory::toString ( transition.second.first ), "\"", "\\\"" ) );
 		auto mapIterator = transitionMap.find(key);
 
 		std::string symbol = replace ( alib::StringDataFactory::toString ( transition.first.second ), "\"", "\\\"" );
@@ -1161,7 +1161,7 @@ void GasTexConverter::transitions(const automaton::VisiblyPushdownDPDA < InputSy
 	}
 
 	for (const auto& transition : pda.getReturnTransitions()) {
-		std::pair<std::string, std::string> key( std::to_string ( std::get<0>(transition.first) ), std::to_string ( transition.second ) );
+		std::pair<std::string, std::string> key( replace ( alib::StringDataFactory::toString ( std::get<0>(transition.first ) ), "\"", "\\\"" ), replace ( alib::StringDataFactory::toString ( transition.second ), "\"", "\\\"" ) );
 		auto mapIterator = transitionMap.find(key);
 
 		std::string symbol = replace ( alib::StringDataFactory::toString ( std::get<1>(transition.first )), "\"", "\\\"" );
@@ -1180,7 +1180,7 @@ void GasTexConverter::transitions(const automaton::VisiblyPushdownDPDA < InputSy
 	}
 
 	for (const auto& transition : pda.getLocalTransitions()) {
-		std::pair<std::string, std::string> key( std::to_string ( transition.first.first ), std::to_string ( transition.second ) );
+		std::pair<std::string, std::string> key( replace ( alib::StringDataFactory::toString ( transition.first.first ), "\"", "\\\"" ), replace ( alib::StringDataFactory::toString ( transition.second ), "\"", "\\\"" ) );
 		auto mapIterator = transitionMap.find(key);
 
 		std::string symbol = replace ( alib::StringDataFactory::toString ( transition.first.second ), "\"", "\\\"" );
@@ -1207,7 +1207,7 @@ void GasTexConverter::transitions(const automaton::VisiblyPushdownNPDA < InputSy
 
 	for (const auto& transition : pda.getCallTransitions()) {
 		for(const auto& to : transition.second) {
-			std::pair<std::string, std::string> key( std::to_string ( transition.first.first ), std::to_string ( to.first ) );
+			std::pair<std::string, std::string> key( replace ( alib::StringDataFactory::toString ( transition.first.first ), "\"", "\\\"" ), replace ( alib::StringDataFactory::toString ( to.first ), "\"", "\\\"" ) );
 			auto mapIterator = transitionMap.find(key);
 
 			std::string symbol = replace ( alib::StringDataFactory::toString ( transition.first.second ), "\"", "\\\"" );
@@ -1228,7 +1228,7 @@ void GasTexConverter::transitions(const automaton::VisiblyPushdownNPDA < InputSy
 
 	for (const auto& transition : pda.getReturnTransitions()) {
 		for(const auto& to : transition.second) {
-			std::pair<std::string, std::string> key( std::to_string ( std::get<0>(transition.first) ), std::to_string ( to ) );
+			std::pair<std::string, std::string> key( replace ( alib::StringDataFactory::toString ( std::get<0>(transition.first ) ), "\"", "\\\"" ), replace ( alib::StringDataFactory::toString ( to ), "\"", "\\\"" ) );
 			auto mapIterator = transitionMap.find(key);
 
 			std::string symbol = replace ( alib::StringDataFactory::toString ( std::get<1>(transition.first )), "\"", "\\\"" );
@@ -1249,7 +1249,7 @@ void GasTexConverter::transitions(const automaton::VisiblyPushdownNPDA < InputSy
 
 	for (const auto& transition : pda.getLocalTransitions()) {
 		for(const auto& to : transition.second) {
-			std::pair<std::string, std::string> key( std::to_string ( transition.first.first ), std::to_string ( to ) );
+			std::pair<std::string, std::string> key( replace ( alib::StringDataFactory::toString ( transition.first.first ), "\"", "\\\"" ), replace ( alib::StringDataFactory::toString ( to ), "\"", "\\\"" ) );
 			auto mapIterator = transitionMap.find(key);
 
 			std::string symbol = replace ( alib::StringDataFactory::toString ( transition.first.second ), "\"", "\\\"" );
@@ -1276,7 +1276,7 @@ void GasTexConverter::transitions(const automaton::RealTimeHeightDeterministicDP
 	std::map<std::pair<std::string, std::string>, std::string> transitionMap;
 
 	for (const auto& transition : pda.getCallTransitions()) {
-		std::pair<std::string, std::string> key( std::to_string ( transition.first.first ), std::to_string ( transition.second.first ) );
+		std::pair<std::string, std::string> key( replace ( alib::StringDataFactory::toString ( transition.first.first ), "\"", "\\\"" ), replace ( alib::StringDataFactory::toString ( transition.second.first ), "\"", "\\\"" ) );
 		auto mapIterator = transitionMap.find(key);
 
 		std::string symbol;
@@ -1299,7 +1299,7 @@ void GasTexConverter::transitions(const automaton::RealTimeHeightDeterministicDP
 	}
 
 	for (const auto& transition : pda.getReturnTransitions()) {
-		std::pair<std::string, std::string> key( std::to_string ( std::get<0>(transition.first) ), std::to_string ( transition.second ) );
+		std::pair<std::string, std::string> key( replace ( alib::StringDataFactory::toString ( std::get<0>(transition.first ) ), "\"", "\\\"" ), replace ( alib::StringDataFactory::toString ( transition.second ), "\"", "\\\"" ) );
 		auto mapIterator = transitionMap.find(key);
 
 		std::string symbol;
@@ -1322,7 +1322,7 @@ void GasTexConverter::transitions(const automaton::RealTimeHeightDeterministicDP
 	}
 
 	for (const auto& transition : pda.getLocalTransitions()) {
-		std::pair<std::string, std::string> key( std::to_string ( transition.first.first ), std::to_string ( transition.second ) );
+		std::pair<std::string, std::string> key( replace ( alib::StringDataFactory::toString ( transition.first.first ), "\"", "\\\"" ), replace ( alib::StringDataFactory::toString ( transition.second ), "\"", "\\\"" ) );
 		auto mapIterator = transitionMap.find(key);
 
 		std::string symbol;
@@ -1353,7 +1353,7 @@ void GasTexConverter::transitions(const automaton::RealTimeHeightDeterministicNP
 
 	for (const auto& transition : pda.getCallTransitions()) {
 		for(const auto& to : transition.second) {
-			std::pair<std::string, std::string> key( std::to_string ( transition.first.first ), std::to_string ( to.first ) );
+			std::pair<std::string, std::string> key( replace ( alib::StringDataFactory::toString ( transition.first.first ), "\"", "\\\"" ), replace ( alib::StringDataFactory::toString ( to.first ), "\"", "\\\"" ) );
 			auto mapIterator = transitionMap.find(key);
 
 			std::string symbol;
@@ -1378,7 +1378,7 @@ void GasTexConverter::transitions(const automaton::RealTimeHeightDeterministicNP
 
 	for (const auto& transition : pda.getReturnTransitions()) {
 		for(const auto& to : transition.second) {
-			std::pair<std::string, std::string> key( std::to_string ( std::get<0>(transition.first) ), std::to_string ( to ) );
+			std::pair<std::string, std::string> key( replace ( alib::StringDataFactory::toString ( std::get<0>(transition.first ) ), "\"", "\\\"" ), replace ( alib::StringDataFactory::toString ( to ), "\"", "\\\"" ) );
 			auto mapIterator = transitionMap.find(key);
 
 			std::string symbol;
@@ -1403,7 +1403,7 @@ void GasTexConverter::transitions(const automaton::RealTimeHeightDeterministicNP
 
 	for (const auto& transition : pda.getLocalTransitions()) {
 		for(const auto& to : transition.second) {
-			std::pair<std::string, std::string> key( std::to_string ( transition.first.first ), std::to_string ( to ) );
+			std::pair<std::string, std::string> key( replace ( alib::StringDataFactory::toString ( transition.first.first ), "\"", "\\\"" ), replace ( alib::StringDataFactory::toString ( to ), "\"", "\\\"" ) );
 			auto mapIterator = transitionMap.find(key);
 
 			std::string symbol;
@@ -1435,7 +1435,7 @@ void GasTexConverter::transitions(const automaton::NPDA < InputSymbolType, Epsil
 
 	for (const auto& transition : pda.getTransitions()) {
 		for(const auto& to : transition.second) {
-			std::pair<std::string, std::string> key( std::to_string ( std::get<0>(transition.first) ), std::to_string ( to.first ) );
+			std::pair<std::string, std::string> key( replace ( alib::StringDataFactory::toString ( std::get<0>(transition.first ) ), "\"", "\\\"" ), replace ( alib::StringDataFactory::toString ( to.first ), "\"", "\\\"" ) );
 			auto mapIterator = transitionMap.find(key);
 
 			std::string symbol;
@@ -1468,7 +1468,7 @@ void GasTexConverter::transitions(const automaton::SinglePopNPDA < InputSymbolTy
 
 	for (const auto& transition : pda.getTransitions()) {
 		for(const auto& to : transition.second) {
-			std::pair<std::string, std::string> key( std::to_string ( std::get<0>(transition.first) ), std::to_string ( to.first ) );
+			std::pair<std::string, std::string> key( replace ( alib::StringDataFactory::toString ( std::get<0>(transition.first ) ), "\"", "\\\"" ), replace ( alib::StringDataFactory::toString ( to.first ), "\"", "\\\"" ) );
 			auto mapIterator = transitionMap.find(key);
 
 			std::string symbol;
@@ -1500,7 +1500,7 @@ void GasTexConverter::transitions(const automaton::OneTapeDTM < SymbolType, Stat
 	std::map<std::pair<std::string, std::string>, std::string> transitionMap;
 
 	for (auto& transition : tm.getTransitions()) {
-		std::pair<std::string, std::string> key( std::to_string ( transition.first.first ), std::to_string ( std::get<0>(transition.second)));
+		std::pair<std::string, std::string> key( replace ( alib::StringDataFactory::toString ( transition.first.first ), "\"", "\\\"" ), replace ( alib::StringDataFactory::toString ( std::get<0>(transition.second )), "\"", "\\\"" ));
 		auto mapIterator = transitionMap.find(key);
 
 		std::string symbol = replace ( alib::StringDataFactory::toString ( transition.first.second ), "\"", "\\\"" );
-- 
GitLab