int *join_list(int str_a[], int lenght_a, int str_b[], int lenght_b, int *element) { int joinIndex = lenght_a + lenght_b; int *result = malloc(joinIndex * sizeof (int)); int count = 1; result[0] = str_a[0]; int i; for (i = 1; i < lenght_a; i++) { if (!is_exists(result, count, str_a[i])) { result[count] = str_a[i]; count++; } } for (i = 0; i < lenght_b; i++) { if (!is_exists(result, count, str_b[i])) { result[count] = str_b[i]; count++; } } *element = count; return result; }
static void parse_fml(char const* str, app_ref_vector& vars, expr_ref& fml) { ast_manager& m = fml.get_manager(); fml = parse_fml(m, str); if (is_exists(fml)) { quantifier* q = to_quantifier(fml); for (unsigned i = 0; i < q->get_num_decls(); ++i) { vars.push_back(m.mk_const(q->get_decl_name(i), q->get_decl_sort(i))); } fml = q->get_expr(); var_subst vs(m, true); vs(fml, vars.size(), (expr*const*)vars.c_ptr(), fml); } }
void normalize(expr_ref& f) { bool is_positive = true; expr* e = 0; while (true) { if (is_forall(f) && is_positive) { f = to_quantifier(f)->get_expr(); } else if (is_exists(f) && !is_positive) { f = to_quantifier(f)->get_expr(); } else if (m.is_not(f, e)) { is_positive = !is_positive; f = e; } else { break; } } if (!is_positive) { f = m.mk_not(f); } }
Path* parsePath(PCWSTR path) { auto_array < WCHAR > extendedPath(MAX_PATH_LEN); Copy(extendedPath, PATH_PREFIX_NT, extendedPath.size()); Cat(extendedPath, FullPath(path).c_str(), extendedPath.size()); ::GetLongPathName(extendedPath, extendedPath, extendedPath.size()); PWSTR tmp = (PWSTR)find_last_not_of((PCWSTR)extendedPath, L"\\ "); if (tmp && (tmp - extendedPath) < (ssize_t)extendedPath.size()) { tmp[1] = STR_END; //erase tailing path separators } Path* Result = nullptr; if (Empty(extendedPath) || !is_exists(extendedPath)) { logError(L"Path \"%s\" is not existing or accessible!\n", extendedPath.data()); } else { { ConsoleColor col(FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN); logInfo(L"Adding directory: "); } logInfo(L"\"%s\"\n", path); Result = new Path(shared_ptr<Path>(), AutoUTF(extendedPath)); } return Result; }