1
- /* ******************************************************************\
2
-
3
- Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
4
-
5
- \*******************************************************************/
1
+ // / \file
2
+ // / Allows call an external SAT solver to allow faster integration of
3
+ // / newer SAT solvers
4
+ // / \author Francis Botero <[email protected] >
6
5
7
6
#include " external_sat.h"
8
7
@@ -13,8 +12,6 @@ Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
13
12
#include < util/string_utils.h>
14
13
#include < util/tempfile.h>
15
14
16
- #include < json/json_parser.h>
17
-
18
15
#include < chrono>
19
16
#include < cstdlib>
20
17
#include < fstream>
@@ -24,7 +21,7 @@ Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
24
21
#include < thread>
25
22
26
23
external_satt::external_satt (message_handlert &message_handler, std::string cmd)
27
- : cnf_clause_list_assignmentt(message_handler), _cmd (std::move(cmd))
24
+ : cnf_clause_list_assignmentt(message_handler), solver_cmd (std::move(cmd))
28
25
{
29
26
}
30
27
@@ -43,7 +40,7 @@ void external_satt::set_assignment(literalt, bool)
43
40
UNIMPLEMENTED;
44
41
}
45
42
46
- inline void external_satt::write_cnf_file (std::string cnf_file)
43
+ void external_satt::write_cnf_file (std::string cnf_file)
47
44
{
48
45
log.status () << " Writing temporary CNF" << messaget::eom;
49
46
std::ofstream out (cnf_file);
@@ -57,18 +54,17 @@ inline void external_satt::write_cnf_file(std::string cnf_file)
57
54
out.close ();
58
55
}
59
56
60
- inline std::string external_satt::execute_solver (std::string cnf_file)
57
+ std::string external_satt::execute_solver (std::string cnf_file)
61
58
{
62
59
log.status () << " Invoking SAT solver" << messaget::eom;
63
60
std::ostringstream response_ostream;
64
- auto cmd_result = run (_cmd , {" " , cnf_file}, " " , response_ostream, " " );
61
+ auto cmd_result = run (solver_cmd , {" " , cnf_file}, " " , response_ostream, " " );
65
62
66
63
log.status () << " Solver returned code: " << cmd_result << messaget::eom;
67
64
return response_ostream.str ();
68
65
}
69
66
70
- inline external_satt::resultt
71
- external_satt::parse_result (std::string solver_output)
67
+ external_satt::resultt external_satt::parse_result (std::string solver_output)
72
68
{
73
69
std::istringstream response_istream (solver_output);
74
70
std::string line;
0 commit comments