Fixes #4179.
default = "false"
help = "experimental features in the theory of strings"
-[[option]]
- name = "stdPrintASCII"
- category = "regular"
- long = "strings-print-ascii"
- type = "bool"
- default = "false"
- read_only = true
- help = "the alphabet contains only printable characters from the standard extended ASCII"
-
[[option]]
name = "stringFMF"
category = "regular"
if(ch[0] > ch[1]) {
throw TypeCheckingExceptionPrivate(n, "expecting the first constant is less or equal to the second one in regexp range");
}
- unsigned maxCh = options::stdPrintASCII() ? 127 : 255;
- if (ch[1] > maxCh)
- {
- std::stringstream ss;
- ss << "expecting characters whose code point is less than or equal to "
- << maxCh;
- throw TypeCheckingExceptionPrivate(n, ss.str());
- }
}
return nodeManager->regExpType();
}
uint32_t getAlphabetCardinality()
{
- if (options::stdPrintASCII())
- {
- Assert(128 <= String::num_codes());
- return 128;
- }
// 3*16^4 = 196608 values in the SMT-LIB standard for Unicode strings
Assert(196608 <= String::num_codes());
return 196608;
-; COMMAND-LINE: --strings-print-ascii --strings-exp
+; COMMAND-LINE: --strings-exp
; EXPECT: sat
(set-info :smt-lib-version 2.6)
(set-logic ALL)