diff options
author | Andres Noetzli <andres.noetzli@gmail.com> | 2019-05-30 11:05:42 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-05-30 11:05:42 -0700 |
commit | be2a85f84fec4e926704f4788c55ec2ba805de39 (patch) | |
tree | 355f1fdbb6ab858409a324d035fb4faaab4c6b54 /src/printer | |
parent | 60173f62a82b4d71f2fbac51880d44d883ae5109 (diff) |
Quote symbol when printing empty symbol name (#3025)
When printing an empty symbol name, which can appear in an SMT2 file as
`||`, we were printing the empty string instead of quoting the symbol.
This commit fixes the issue and adds a regression test.
Diffstat (limited to 'src/printer')
-rw-r--r-- | src/printer/smt2/smt2_printer.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/printer/smt2/smt2_printer.cpp b/src/printer/smt2/smt2_printer.cpp index 380004d02..66d36fe4c 100644 --- a/src/printer/smt2/smt2_printer.cpp +++ b/src/printer/smt2/smt2_printer.cpp @@ -91,7 +91,11 @@ void Smt2Printer::toStream( static std::string maybeQuoteSymbol(const std::string& s) { // this is the set of SMT-LIBv2 permitted characters in "simple" (non-quoted) symbols - if(s.find_first_not_of("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789~!@$%^&*_-+=<>.?/") != string::npos) { + if (s.find_first_not_of("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" + "0123456789~!@$%^&*_-+=<>.?/") + != string::npos + || s.empty()) + { // need to quote it stringstream ss; ss << '|' << s << '|'; |