diff options
author | Andrew Reynolds <andrew.j.reynolds@gmail.com> | 2020-03-31 10:07:29 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-31 10:07:29 -0500 |
commit | 5726447e3864c7d2289b458b2d2c5f31b5933a81 (patch) | |
tree | 07de6d8d83e3317320a6ff89e5b7578632a66a83 /src/theory/strings/word.cpp | |
parent | 501894d709c19aebcaed1bd43e506501a8bbd69b (diff) |
Convert more uses of string-specific functions (#4158)
Towards theory of sequences.
Diffstat (limited to 'src/theory/strings/word.cpp')
-rw-r--r-- | src/theory/strings/word.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/theory/strings/word.cpp b/src/theory/strings/word.cpp index 0faeffd99..b42cf3160 100644 --- a/src/theory/strings/word.cpp +++ b/src/theory/strings/word.cpp @@ -76,6 +76,29 @@ size_t Word::getLength(TNode x) return 0; } +std::vector<Node> Word::getChars(TNode x) +{ + Kind k = x.getKind(); + if (k == CONST_STRING) + { + std::vector<Node> ret; + NodeManager* nm = NodeManager::currentNM(); + std::vector<unsigned> ccVec; + const std::vector<unsigned>& cvec = x.getConst<String>().getVec(); + for (unsigned chVal : cvec) + { + ccVec.clear(); + ccVec.push_back(chVal); + Node ch = nm->mkConst(String(ccVec)); + ret.push_back(ch); + } + return ret; + } + Unimplemented(); + std::vector<Node> ret; + return ret; +} + bool Word::isEmpty(TNode x) { return getLength(x) == 0; } bool Word::strncmp(TNode x, TNode y, std::size_t n) |