Esempio n. 1
0
bool is_smt2_quoted_symbol(char const * s) {
    if (s == 0)
        return false;
    if ('0' <= s[0] && s[0] <= '9')
        return true;
    unsigned len = static_cast<unsigned>(strlen(s));
    for (unsigned i = 0; i < len; i++)
        if (!is_smt2_simple_symbol_char(s[i]))
            return true;
    return false;
}
Esempio n. 2
0
static void display_smt2_key(std::ostream & out, char const * key) {
    SASSERT(key != 0);
    out << ":";
    if (*key == ':')
        key++;
    while (*key) {
        if (is_smt2_simple_symbol_char(*key))
            out << *key;
        else
            out << "-";
        key++;
    }
}
Esempio n. 3
0
bool is_smt2_quoted_symbol(char const * s) {
    if (s == nullptr)
        return false;
    if ('0' <= s[0] && s[0] <= '9')
        return true;
    unsigned len = static_cast<unsigned>(strlen(s));
    if (len >= 2 && s[0] == '|' && s[len-1] == '|') {
        for (unsigned i = 1; i + 1 < len; i++) {
            if (s[i] == '\\' && i + 2 < len && (s[i+1] == '\\' || s[i+1] == '|')) {
                i++;
            }
            else if (s[i] == '\\' || s[i] == '|') 
                return true;
        }
        return false;
    }
    for (unsigned i = 0; i < len; i++)
        if (!is_smt2_simple_symbol_char(s[i]))
            return true;
    return false;
}