From e9b2266f9d421253f5300f7875bcb92fb7e317e3 Mon Sep 17 00:00:00 2001
From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz>
Date: Tue, 28 Oct 2014 23:37:01 +0100
Subject: [PATCH] arename main reimplementation + fixes

---
 acat2/src/acat.cpp       |  2 +-
 arename2/src/arename.cpp | 40 +++++++++++++++++++++++++++-------------
 tests.aconversion.sh     |  3 ++-
 3 files changed, 30 insertions(+), 15 deletions(-)

diff --git a/acat2/src/acat.cpp b/acat2/src/acat.cpp
index 520b5e9343..56b838b21c 100644
--- a/acat2/src/acat.cpp
+++ b/acat2/src/acat.cpp
@@ -16,7 +16,7 @@
 
 int main(int argc, char** argv) {
 	try {
-		TCLAP::CmdLine cmd("Regexp derivative compute binary", ' ', "0.01");
+		TCLAP::CmdLine cmd("Cat binary", ' ', "0.01");
 
 		TCLAP::UnlabeledValueArg<std::string> input(	"input",	"Input to cat",		false,	"-",		"file");
 		cmd.add( input );
diff --git a/arename2/src/arename.cpp b/arename2/src/arename.cpp
index f4a5678ee5..fc358816f9 100644
--- a/arename2/src/arename.cpp
+++ b/arename2/src/arename.cpp
@@ -1,11 +1,14 @@
-//============================================================================
-// Name        : anormalize.cpp
-// Author      : Jan Travnicek
-//============================================================================
+/*
+ * arename.cpp
+ *
+ *  Created on: 24. 2. 2014
+ *      Author: Jan Travnicek
+ */
 
 #include <iostream>
 #include <string>
 #include <set>
+#include <tclap/CmdLine.h>
 
 #include "exception/AlibException.h"
 #include "factory/DataFactory.hpp"
@@ -14,22 +17,33 @@
 int main(int argc, char** argv) {
 
 	try {
-		if (argc == 2 && std::string("-h").compare(argv[1]) == 0) {
-			std::cout << "Automaton rename." << std::endl << "Usage: arename automaton.xml" << std::endl;
-			return -1;
-		} else if (argc == 1 || (argc == 2 && std::string("--").compare(argv[1]) == 0)) {
-			alib::DataFactory::toStdout(automaton::simplify::Rename::rename(alib::DataFactory::fromStdin<automaton::Automaton>()));
-		} else if (argc == 2) {
-			alib::DataFactory::toStdout(automaton::simplify::Rename::rename(alib::DataFactory::fromFile<automaton::Automaton>(argv[1])));
+		TCLAP::CmdLine cmd("Automaton rename binary", ' ', "0.01");
+
+		TCLAP::ValueArg<std::string> input(	"a",	"automaton",	"Automaton to rename",		false,	"-",		"file");
+		cmd.add( input );
+
+		cmd.parse(argc, argv);
+
+		std::list<sax::Token> tokens;
+		if(input.isSet()) {
+			if(input.getValue() == "-") {
+				sax::SaxParseInterface::parseStdin(tokens);
+			} else {
+				sax::SaxParseInterface::parseFile(input.getValue(), tokens);
+			}
 		} else {
-			std::cout << "Automaton rename require deterministic automaton" << std::endl;
-			return 1;
+			sax::SaxParseInterface::parseStdin(tokens);
 		}
+
+		alib::DataFactory::toStdout(automaton::simplify::Rename::rename(alib::DataFactory::fromTokens<automaton::Automaton>(tokens)));
 		return 0;
 
 	} catch (const exception::AlibException& exception) {
 		alib::DataFactory::toStdout(exception);
 		return 1;
+	} catch(const TCLAP::ArgException& exception) {
+		std::cout << exception.error() << std::endl;
+		return 2;
 	} catch(...) {
 		return 127;
 	}
diff --git a/tests.aconversion.sh b/tests.aconversion.sh
index ff45fc25b5..a38fc04e64 100755
--- a/tests.aconversion.sh
+++ b/tests.aconversion.sh
@@ -70,7 +70,8 @@ function runTest2 {
 	fi
 
 	log "$1" $RET "$(cat $TMPNFA)" "$OUT"
-	
+	rm $TMPNFA
+
 	if [ $RET == 124 ]; then # timeout
 		return 2
 	elif [ $RET -ge 124 ]; then #segv
-- 
GitLab