List of all members | Public Member Functions | Protected Member Functions
circuit_processor Class Reference

Implementation of revlib_processor to construct a circuit. More...

Inheritance diagram for circuit_processor:
revlib_processor

Public Member Functions

 circuit_processor (circuit &circ)
 Default constructor. More...
 
virtual ~circuit_processor ()
 Default deconstructor. More...
 
- Public Member Functions inherited from revlib_processor
 revlib_processor ()
 Default constructor. More...
 
virtual ~revlib_processor ()
 Default deconstructor. More...
 

Protected Member Functions

virtual void on_comment (const std::string &comment) const
 Called when parsing comments. More...
 
virtual void on_numvars (unsigned numvars) const
 Called when parsing .numvars command. More...
 
virtual void on_inputs (std::vector< std::string >::const_iterator first, std::vector< std::string >::const_iterator last) const
 Called when parsing .inputs command. More...
 
virtual void on_outputs (std::vector< std::string >::const_iterator first, std::vector< std::string >::const_iterator last) const
 Called when parsing .outputs command. More...
 
virtual void on_constants (std::vector< constant >::const_iterator first, std::vector< constant >::const_iterator last) const
 Called when parsing the .constants command. More...
 
virtual void on_garbage (std::vector< bool >::const_iterator first, std::vector< bool >::const_iterator last) const
 Called when parsing .garbage command. More...
 
virtual void on_inputbus (const std::string &name, const std::vector< unsigned > &line_indices) const
 Called when parsing .inputbus command. More...
 
virtual void on_outputbus (const std::string &name, const std::vector< unsigned > &line_indices) const
 Called when parsing .outputbus command. More...
 
virtual void on_state (const std::string &name, const std::vector< unsigned > &line_indices, unsigned initial_value) const
 Called when parsing .state command. More...
 
virtual void on_module (const std::string &name, const boost::optional< std::string > &filename) const
 Called when parsing .module command. More...
 
virtual void on_gate (const boost::any &target_type, const std::vector< unsigned > &line_indices) const
 Called when a gate is parsed. More...
 
virtual void on_end () const
 Called when parsing .end command. More...
 
- Protected Member Functions inherited from revlib_processor
virtual void on_version (const std::string &version) const
 Called when parsing .version command. More...
 
virtual void on_variables (std::vector< std::string >::const_iterator first, std::vector< std::string >::const_iterator last) const
 Called when parsing .variables command. More...
 
virtual void on_begin () const
 Called when parsing .begin command. More...
 
virtual void on_truth_table_line (unsigned line_index, const std::vector< boost::optional< bool > >::const_iterator first, const std::vector< boost::optional< bool > >::const_iterator last) const
 Called when a truth table line is parsed. More...
 
void add_annotation (const std::string &key, const std::string &value)
 Adds an annotation to the processor. More...
 
void clear_annotations ()
 Clears the current annotations. More...
 
properties::ptr current_annotations () const
 Returns the current annotations. More...
 

Detailed Description

Implementation of revlib_processor to construct a circuit.

This class inherits from revlib_processor and constructs a circuit when parsing a realization file.

For convinience the function read_realization(circuit&, const std::string&, std::string*) wraps the use of this class to read circuits from a file.

Author
RevKit
Since
1.0

Constructor & Destructor Documentation

circuit_processor ( circuit circ)
explicit

Default constructor.

Initializes private data

Parameters
circAn empty circuit which will be constructed and filled with gates while parsing the circuit
Author
RevKit
Since
1.0
virtual ~circuit_processor ( )
virtual

Default deconstructor.

Clears private data

Author
RevKit
Since
1.0

Member Function Documentation

virtual void on_comment ( const std::string &  comment) const
protectedvirtual

Called when parsing comments.

This method is called when a comment (starting with a #) is parsed. The comment (text after the #) is stored in the parameter comment.

Parameters
commentComment (single line)
Author
RevKit
Since
1.0

Reimplemented from revlib_processor.

virtual void on_constants ( std::vector< constant >::const_iterator  first,
std::vector< constant >::const_iterator  last 
) const
protectedvirtual

Called when parsing the .constants command.

This method is called when a .constants command is parsed. The constant in a std::vector can be accessed via their first and last iterator. A optional boolean value indicates whether the line is constant or not and in case it is constant, which constant line is represented.

Parameters
firstBegin iterator of constants vector
lastEnd iterator of constants vector
Author
RevKit
Since
1.0

Reimplemented from revlib_processor.

virtual void on_end ( ) const
protectedvirtual

Called when parsing .end command.

This method is called when a .end command is parsed.

Author
RevKit
Since
1.0

Reimplemented from revlib_processor.

virtual void on_garbage ( std::vector< bool >::const_iterator  first,
std::vector< bool >::const_iterator  last 
) const
protectedvirtual

Called when parsing .garbage command.

This method is called when a .garbage command is parsed. The garbage in a std::vector can be accessed via their first and last iterator. A boolean value indicates whether the line has a garbage output or not.

Parameters
firstBegin iterator of garbage vector
lastEnd iterator of garbage vector
Author
RevKit
Since
1.0

Reimplemented from revlib_processor.

virtual void on_gate ( const boost::any &  target_type,
const std::vector< unsigned > &  line_indices 
) const
protectedvirtual

Called when a gate is parsed.

This method is called when a gate is parsed providing the gate type in parameter target_type and all connected line via their zero-index indices.

The last indices in the list line_indices are the target lines. The number of target lines depends on the corresponding gate type.

Parameters
target_typeTarget type of the target line(s).
line_indicesAll connected lines, both control and target lines.
Author
RevKit
Since
1.0

Reimplemented from revlib_processor.

virtual void on_inputbus ( const std::string &  name,
const std::vector< unsigned > &  line_indices 
) const
protectedvirtual

Called when parsing .inputbus command.

This method is called when a .inputbus command is parsed. The first parameter name is the name of the bus, whereas the corresponding variables can be accessed via the second parameter line_indices, which already contains the indices rather than the variable names.

Parameters
nameName of the bus
line_indicesLine indices of the variables of the bus
Author
RevKit
Since
1.1

Reimplemented from revlib_processor.

virtual void on_inputs ( std::vector< std::string >::const_iterator  first,
std::vector< std::string >::const_iterator  last 
) const
protectedvirtual

Called when parsing .inputs command.

This method is called when a .inputs command is parsed. The inputs in a std::vector can be accessed via their first and last iterator.

Parameters
firstBegin iterator of inputs vector
lastEnd iterator of inputs vector
Author
RevKit
Since
1.0

Reimplemented from revlib_processor.

virtual void on_module ( const std::string &  name,
const boost::optional< std::string > &  filename 
) const
protectedvirtual

Called when parsing .module command.

This method is called when a .module command is parsed.

Parameters
nameName of the module (used later to add gates)
filenameFile-name of the module circuit
Author
RevKit
Since
1.1

Reimplemented from revlib_processor.

virtual void on_numvars ( unsigned  numvars) const
protectedvirtual

Called when parsing .numvars command.

This method is called when a .numvars command is parsed. The number of variables is stored in the parameter numvars.

Parameters
numvarsNumber of variables
Author
RevKit
Since
1.0

Reimplemented from revlib_processor.

virtual void on_outputbus ( const std::string &  name,
const std::vector< unsigned > &  line_indices 
) const
protectedvirtual

Called when parsing .outputbus command.

This method is called when a .outputbus command is parsed. The first parameter name is the name of the bus, whereas the corresponding variables can be accessed via the second parameter line_indices, which already contains the indices rather than the variable names.

Parameters
nameName of the bus
line_indicesLine indices of the variables of the bus
Author
RevKit
Since
1.1

Reimplemented from revlib_processor.

virtual void on_outputs ( std::vector< std::string >::const_iterator  first,
std::vector< std::string >::const_iterator  last 
) const
protectedvirtual

Called when parsing .outputs command.

This method is called when a .outputs command is parsed. The outputs in a std::vector can be accessed via their first and last iterator.

Parameters
firstBegin iterator of outputs vector
lastEnd iterator of outputs vector
Author
RevKit
Since
1.0

Reimplemented from revlib_processor.

virtual void on_state ( const std::string &  name,
const std::vector< unsigned > &  line_indices,
unsigned  initial_value 
) const
protectedvirtual

Called when parsing .state command.

This method is called when a .state command is parsed. The first parameter name is the name of the state (bus), whereas the corresponding variables can be accessed via the second parameter line_indices, which already contains the indices rather than the variable names.

A .state command is modeled like a bus since it can contain more than one line index. Even if the state contains only one signal, this pattern is used.

Parameters
nameName of the state (bus)
line_indicesLine indices of the variables of the state (bus)
initial_valueInitial value for the state signal
Author
RevKit
Since
1.1

Reimplemented from revlib_processor.


The documentation for this class was generated from the following file:

Generated on Tue Apr 16 2013 08:12:02 for RevKit by doxygen 1.8.3.1