AIGER parser

The header <lorina/aiger.hpp> implements methods to parse the AIGER format (see http://fmv.jku.at/aiger/).

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

Function Description
on_header(m, i, l, o, a) Callback method for parsed header
on_header(m, i, l, o, a, b, c, j, f) Callback method for parsed header
on_input(index, lit) Callback method for parsed input
on_output(index, lit) Callback method for parsed output
on_latch(index, next, reset) Callback method for parsed latch
on_and(index, left_lit, right_lit) Callback method for parsed AND gate
on_input_name(index, name) Callback method for parsed input name
on_latch_name(index, name) Callback method for parsed latch name
on_output_name(index, name) Callback method for parsed output name
on_bad_state_name(index, name) Callback method for a parsed name of a bad state property
on_constraint_name(index, name) Callback method for a parsed name of an invariant constraint
on_fairness_name(index, name) Callback method for a parsed name of a fairness constraint
on_comment(comment) Callback method for parsed comment

The following reader functions are available.

Function
Description
read_ascii_aiger
Reader function for ASCII AIGER format.
read_ascii_aiger
Reader function for ASCII AIGER format.
read_aiger
Reader function for binary AIGER format.
read_aiger
Reader function for binary AIGER format.
return_code lorina::read_ascii_aiger(const std::string &filename, const aiger_reader &reader, diagnostic_engine *diag = nullptr)

Reader function for ASCII AIGER format.

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

Return
Success if parsing have been successful, or parse error if parsing have failed
Parameters
  • filename: Name of the file
  • reader: An AIGER reader with callback methods invoked for parsed primitives
  • diag: An optional diagnostic engine with callback methods for parse errors

return_code lorina::read_ascii_aiger(std::istream &in, const aiger_reader &reader, diagnostic_engine *diag = nullptr)

Reader function for ASCII AIGER format.

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

Return
Success if parsing have been successful, or parse error if parsing have failed
Parameters
  • in: Input stream
  • reader: An AIGER reader with callback methods invoked for parsed primitives
  • diag: An optional diagnostic engine with callback methods for parse errors

return_code lorina::read_aiger(const std::string &filename, const aiger_reader &reader, diagnostic_engine *diag = nullptr)

Reader function for binary AIGER format.

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

Return
Success if parsing have been successful, or parse error if parsing have failed
Parameters
  • filename: Name of the file
  • reader: An AIGER reader with callback methods invoked for parsed primitives
  • diag: An optional diagnostic engine with callback methods for parse errors

return_code lorina::read_aiger(std::istream &in, const aiger_reader &reader, diagnostic_engine *diag = nullptr)

Reader function for binary AIGER format.

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

Return
Success if parsing have been successful, or parse error if parsing have failed
Parameters
  • in: Input stream
  • reader: An AIGER reader with callback methods invoked for parsed primitives
  • diag: An optional diagnostic engine with callback methods for parse errors