コード例 #1
0
ファイル: main.c プロジェクト: NikolovV/C-Language
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;
}
コード例 #2
0
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);
    }
}
コード例 #3
0
ファイル: horn_tactic.cpp プロジェクト: CHolmes3/z3
 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);
     }
     
 }
コード例 #4
0
ファイル: main.cpp プロジェクト: pombreda/main
	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;
	}