blob: 626767f5f7e71d11712d345a314ccbc2cc24b600 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
/********************* */
/*! \file smt2_quote_string.cpp
** \verbatim
** Top contributors (to current version):
** Tim King, Morgan Deters, Kshitij Bansal
** This file is part of the CVC4 project.
** Copyright (c) 2009-2019 by the authors listed in the file AUTHORS
** in the top-level source directory) and their institutional affiliations.
** All rights reserved. See the file COPYING in the top-level source
** directory for licensing information.\endverbatim
**
** \brief Quotes a string if necessary for smt2.
**
** Quotes a string if necessary for smt2.
**/
#include "util/smt2_quote_string.h"
#include <string>
namespace CVC4 {
/**
* SMT-LIB 2 quoting for symbols
*/
std::string quoteSymbol(const std::string& s){
if(s.find_first_not_of("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789~!@$%^&*_-+=<>.?/") == std::string::npos) {
// simple unquoted symbol
return s;
} else {
std::string tmp(s);
// must quote the symbol, but it cannot contain | or \, we turn those into _
size_t p;
while((p = tmp.find_first_of("\\|")) != std::string::npos) {
tmp = tmp.replace(p, 1, "_");
}
return "|" + tmp + "|";
}
}
}/* CVC4 namespace */
|