DIMACS parser

The header <lorina/dimacs.hpp> implements methods to parse the DIMACS CNF/DNF format.

The class lorina::dimacs_reader provides the following public member functions.

Function

Description

on_format(format)

Callback method for parsed format (CNF or DNF)

on_number_of_variables(n)

Callback method for parsed number of variables

on_number_of_clauses(n)

Callback method for parsed number of clauses

on_clause(clause)

Callback method for parsed clauses

on_end()

Callback method for parsed end

The following reader functions are available.

Function
Description

read_dimacs

Reader function for the DIMACS format.

read_dimacs

Reader function for DIMACS format.
inline return_code lorina::read_dimacs(std::istream &in, const dimacs_reader &reader, diagnostic_engine *diag = nullptr)

Reader function for the DIMACS format.

Reads DIMACS format from a stream and invokes a callback method for each parsed primitive and each detected parse error.

Parameters
  • in – Input stream

  • reader – A DIMACS reader with callback methods invoked for parsed primitives

  • diag – An optional diagnostic engine with callback methods for parse errors

Returns

Success if parsing has been successful, or parse error if parsing has failed

inline return_code lorina::read_dimacs(const std::string &filename, const dimacs_reader &reader, diagnostic_engine *diag = nullptr)

Reader function for DIMACS format.

Reads DIMACS format from a file and invokes a callback method for each parsed primitive and each detected parse error.

Parameters
  • filename – Name of the file

  • reader – A DIMACS reader with callback methods invoked for parsed primitives

  • diag – An optional diagnostic engine with callback methods for parse errors

Returns

Success if parsing has been successful, or parse error if parsing has failed