Removing trailing () at the end of 0-ary values for ASP output.

This commit is contained in:
Patrick Lühne 2016-05-21 16:27:30 +02:00
parent 273e310c60
commit d219ef0388
2 changed files with 13 additions and 1 deletions

View File

@ -44,6 +44,7 @@ struct Value
Sign m_sign; Sign m_sign;
std::string m_name; std::string m_name;
bool m_hasArguments;
}; };
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////

View File

@ -31,7 +31,8 @@ const Value Value::Any = Value::any();
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
Value::Value() 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); istream.ignore(1);
std::getline(istream, value.m_name); 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) catch (const std::exception &e)
{ {
@ -97,6 +105,9 @@ void Value::printAsSAS(std::ostream &ostream) const
ostream << "NegatedAtom "; ostream << "NegatedAtom ";
ostream << m_name; ostream << m_name;
if (!m_hasArguments)
ostream << "()";
} }
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////