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
/*++
Copyright (c) 2020 Microsoft Corporation
Module Name:
value_generatorr.h
Abstract:
Generate mostly different values using index as seed.
Author:
Nikolaj Bjorner 2020-04-25
--*/
#pragma once
#include "util/scoped_ptr_vector.h"
#include "ast/ast.h"
class value_generator_core {
public:
virtual ~value_generator_core() = default;
virtual family_id get_fid() const = 0;
virtual expr_ref get_value(sort* s, unsigned index) = 0;
};
class value_generator {
ast_manager& m;
scoped_ptr_vector<value_generator_core> m_plugins;
void add_plugin(value_generator_core* g);
void init();
public:
value_generator(ast_manager& m);
expr_ref get_value(sort* s, unsigned index);
};