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.
inline 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.

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

Returns

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

inline 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.

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

Returns

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

inline 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.

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

Returns

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

inline 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.

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

Returns

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