21#ifndef Glucose_Dimacs_h
22#define Glucose_Dimacs_h
36template<
class B,
class Solver>
41 parsed_lit = parseInt(in);
42 if (parsed_lit == 0)
break;
43 var = abs(parsed_lit)-1;
44 while (
var >= S.nVars()) S.newVar();
49template<
class B,
class Solver>
50static void parse_DIMACS_main(B& in,
Solver& S) {
57 if (*in == EOF)
break;
59 if (eagerMatch(in,
"p cnf")){
61 clauses = parseInt(in);
66 printf(
"PARSE ERROR! Unexpected char: %c\n", *in),
exit(3);
68 }
else if (*in ==
'c' || *in ==
'p')
72 readClause(in, S, lits);
75 if (vars != S.nVars())
76 fprintf(stderr,
"WARNING! DIMACS header mismatch: wrong number of variables.\n");
78 fprintf(stderr,
"WARNING! DIMACS header mismatch: wrong number of clauses.\n");
84static void parse_DIMACS(
gzFile input_stream,
Solver& S) {
86 parse_DIMACS_main(in, S); }
#define ABC_NAMESPACE_CXX_HEADER_START
#define ABC_NAMESPACE_CXX_HEADER_END
Lit mkLit(Var var, bool sign=false)