summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndres Noetzli <andres.noetzli@gmail.com>2019-12-02 14:21:05 -0800
committerAndrew Reynolds <andrew.j.reynolds@gmail.com>2019-12-02 16:21:05 -0600
commit6bff71eab6102c1dd44698e75a0e1b0db72c2f65 (patch)
treebae71118b6cbe9a917bcdf4db9ce0ea58f8d3aa6
parent207de293b26cf7771814d3cf421e64fc6116434e (diff)
[SMT2 Printer] Quote symbols starting with digit (#3517)
-rw-r--r--src/printer/smt2/smt2_printer.cpp2
-rw-r--r--test/regress/CMakeLists.txt1
-rw-r--r--test/regress/regress0/printer/symbol_starting_w_digit.smt212
3 files changed, 14 insertions, 1 deletions
diff --git a/src/printer/smt2/smt2_printer.cpp b/src/printer/smt2/smt2_printer.cpp
index 1f45d8536..555908ea2 100644
--- a/src/printer/smt2/smt2_printer.cpp
+++ b/src/printer/smt2/smt2_printer.cpp
@@ -95,7 +95,7 @@ static std::string maybeQuoteSymbol(const std::string& s) {
if (s.find_first_not_of("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
"0123456789~!@$%^&*_-+=<>.?/")
!= string::npos
- || s.empty())
+ || s.empty() || (s[0] >= '0' && s[0] <= '9'))
{
// need to quote it
stringstream ss;
diff --git a/test/regress/CMakeLists.txt b/test/regress/CMakeLists.txt
index a098201b2..510316ae3 100644
--- a/test/regress/CMakeLists.txt
+++ b/test/regress/CMakeLists.txt
@@ -612,6 +612,7 @@ set(regress_0_tests
regress0/printer/bv_consts_dec.smt2
regress0/printer/empty_symbol_name.smt2
regress0/printer/let_shadowing.smt2
+ regress0/printer/symbol_starting_w_digit.smt2
regress0/printer/tuples_and_records.cvc
regress0/proof_no_support.smt2
regress0/push-pop/boolean/fuzz_12.smt2
diff --git a/test/regress/regress0/printer/symbol_starting_w_digit.smt2 b/test/regress/regress0/printer/symbol_starting_w_digit.smt2
new file mode 100644
index 000000000..6a688a16f
--- /dev/null
+++ b/test/regress/regress0/printer/symbol_starting_w_digit.smt2
@@ -0,0 +1,12 @@
+; EXPECT: sat
+; EXPECT: ((|0_0| (_ bv1 4)))
+; EXPECT: ((x (_ bv3 4)))
+(set-option :produce-models true)
+(set-logic QF_BV)
+(declare-const |0_0| (_ BitVec 4))
+(declare-const x (_ BitVec 4))
+(assert (= |0_0| #b0001))
+(assert (= x #b0011))
+(check-sat)
+(get-value (|0_0|))
+(get-value (x))
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback