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