From a1b93624d6d7388b51e6192861157f97cd079c59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrick=20L=C3=BChne?= Date: Wed, 8 Jun 2016 00:06:54 +0200 Subject: [PATCH] Fixed accepting std::cin input when omitting input file arguments. --- apps/plasp-app/main.cpp | 42 ++++++++++++++++++++++++++--------------- 1 file changed, 27 insertions(+), 15 deletions(-) diff --git a/apps/plasp-app/main.cpp b/apps/plasp-app/main.cpp index 6e9dec1..cdcc707 100644 --- a/apps/plasp-app/main.cpp +++ b/apps/plasp-app/main.cpp @@ -66,28 +66,40 @@ int main(int argc, char **argv) auto format = variablesMap["format"].as(); std::transform(format.begin(), format.end(), format.begin(), ::tolower); - const auto &inputFiles = variablesMap["input"].as>(); - if (format == "sas") { - if (inputFiles.size() > 1) + if (variablesMap.count("input")) { - std::cerr << "Error: Only one input file allowed for SAS translation" << std::endl; - printHelp(); - return EXIT_FAILURE; - } + const auto &inputFiles = variablesMap["input"].as>(); - const auto sasDescription = variablesMap.count("input") - ? plasp::sas::Description::fromFile(inputFiles.front()) - : plasp::sas::Description::fromStream(std::cin); - const auto sasTranslator = plasp::sas::TranslatorASP(sasDescription); - sasTranslator.translate(std::cout); + if (inputFiles.size() > 1) + { + std::cerr << "Error: Only one input file allowed for SAS translation" << std::endl; + printHelp(); + return EXIT_FAILURE; + } + + const auto sasDescription = plasp::sas::Description::fromFile(inputFiles.front()); + const auto sasTranslator = plasp::sas::TranslatorASP(sasDescription); + sasTranslator.translate(std::cout); + } + else + { + const auto sasDescription = plasp::sas::Description::fromStream(std::cin); + const auto sasTranslator = plasp::sas::TranslatorASP(sasDescription); + sasTranslator.translate(std::cout); + } } else if (format == "pddl") { - const auto pddlDescription = variablesMap.count("input") - ? plasp::pddl::Description::fromFiles(inputFiles) - : plasp::pddl::Description::fromStream(std::cin); + if (variablesMap.count("input")) + { + const auto &inputFiles = variablesMap["input"].as>(); + const auto pddlDescription = plasp::pddl::Description::fromFiles(inputFiles); + } + else + const auto pddlDescription = plasp::pddl::Description::fromStream(std::cin); + //std::cout << pddlDescription << std::endl; } }