From d219ef0388a84f038172e3a0c370bdebc7876248 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrick=20L=C3=BChne?= Date: Sat, 21 May 2016 16:27:30 +0200 Subject: [PATCH] Removing trailing () at the end of 0-ary values for ASP output. --- include/plasp/sas/Value.h | 1 + src/plasp/sas/Value.cpp | 13 ++++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/include/plasp/sas/Value.h b/include/plasp/sas/Value.h index 62bcff9..de66b04 100644 --- a/include/plasp/sas/Value.h +++ b/include/plasp/sas/Value.h @@ -44,6 +44,7 @@ struct Value Sign m_sign; std::string m_name; + bool m_hasArguments; }; //////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/plasp/sas/Value.cpp b/src/plasp/sas/Value.cpp index 9b8f930..0dc52fc 100644 --- a/src/plasp/sas/Value.cpp +++ b/src/plasp/sas/Value.cpp @@ -31,7 +31,8 @@ const Value Value::Any = Value::any(); //////////////////////////////////////////////////////////////////////////////////////////////////// Value::Value() -: m_sign(Sign::Positive) +: m_sign{Sign::Positive}, + m_hasArguments{true} { } @@ -54,6 +55,13 @@ Value Value::fromSAS(std::istream &istream) { istream.ignore(1); std::getline(istream, value.m_name); + + // Remove trailing () + if (value.m_name.find("()") != std::string::npos) + { + value.m_hasArguments = false; + value.m_name.resize(value.m_name.size() - 2); + } } catch (const std::exception &e) { @@ -97,6 +105,9 @@ void Value::printAsSAS(std::ostream &ostream) const ostream << "NegatedAtom "; ostream << m_name; + + if (!m_hasArguments) + ostream << "()"; } ////////////////////////////////////////////////////////////////////////////////////////////////////