libqasm
library for handling cQASM files
|
Main class for all nodes. More...
Public Member Functions | |
virtual NodeType | type () const =0 |
Returns the NodeType of this node. More... | |
virtual One< Node > | copy () const =0 |
Returns a shallow copy of this node. More... | |
virtual One< Node > | clone () const =0 |
Returns a deep copy of this node. More... | |
virtual bool | equals (const Node &rhs) const =0 |
Value-based equality operator. More... | |
virtual bool | operator== (const Node &rhs) const =0 |
Pointer-based equality operator. More... | |
bool | operator!= (const Node &rhs) const |
Pointer-based inequality operator. More... | |
template<typename T > | |
T | visit (Visitor< T > &visitor) |
Visit this object. More... | |
void | dump (std::ostream &out=std::cout, int indent=0) |
Writes a debug dump of this node to the given stream. More... | |
void | dump_seq (std::ostream &out=std::cout, int indent=0) |
Alternate debug dump that represents links and node uniqueness via sequence number tags. More... | |
virtual BitRefs * | as_bit_refs () |
Interprets this node to a node of type BitRefs. More... | |
virtual const BitRefs * | as_bit_refs () const |
Interprets this node to a node of type BitRefs. More... | |
virtual ConstAxis * | as_const_axis () |
Interprets this node to a node of type ConstAxis. More... | |
virtual const ConstAxis * | as_const_axis () const |
Interprets this node to a node of type ConstAxis. More... | |
virtual ConstBool * | as_const_bool () |
Interprets this node to a node of type ConstBool. More... | |
virtual const ConstBool * | as_const_bool () const |
Interprets this node to a node of type ConstBool. More... | |
virtual ConstComplex * | as_const_complex () |
Interprets this node to a node of type ConstComplex. More... | |
virtual const ConstComplex * | as_const_complex () const |
Interprets this node to a node of type ConstComplex. More... | |
virtual ConstComplexMatrix * | as_const_complex_matrix () |
Interprets this node to a node of type ConstComplexMatrix. More... | |
virtual const ConstComplexMatrix * | as_const_complex_matrix () const |
Interprets this node to a node of type ConstComplexMatrix. More... | |
virtual ConstInt * | as_const_int () |
Interprets this node to a node of type ConstInt. More... | |
virtual const ConstInt * | as_const_int () const |
Interprets this node to a node of type ConstInt. More... | |
virtual ConstJson * | as_const_json () |
Interprets this node to a node of type ConstJson. More... | |
virtual const ConstJson * | as_const_json () const |
Interprets this node to a node of type ConstJson. More... | |
virtual ConstReal * | as_const_real () |
Interprets this node to a node of type ConstReal. More... | |
virtual const ConstReal * | as_const_real () const |
Interprets this node to a node of type ConstReal. More... | |
virtual ConstRealMatrix * | as_const_real_matrix () |
Interprets this node to a node of type ConstRealMatrix. More... | |
virtual const ConstRealMatrix * | as_const_real_matrix () const |
Interprets this node to a node of type ConstRealMatrix. More... | |
virtual ConstString * | as_const_string () |
Interprets this node to a node of type ConstString. More... | |
virtual const ConstString * | as_const_string () const |
Interprets this node to a node of type ConstString. More... | |
virtual Constant * | as_constant () |
Interprets this node to a node of type Constant. More... | |
virtual const Constant * | as_constant () const |
Interprets this node to a node of type Constant. More... | |
virtual Function * | as_function () |
Interprets this node to a node of type Function. More... | |
virtual const Function * | as_function () const |
Interprets this node to a node of type Function. More... | |
virtual QubitRefs * | as_qubit_refs () |
Interprets this node to a node of type QubitRefs. More... | |
virtual const QubitRefs * | as_qubit_refs () const |
Interprets this node to a node of type QubitRefs. More... | |
virtual Reference * | as_reference () |
Interprets this node to a node of type Reference. More... | |
virtual const Reference * | as_reference () const |
Interprets this node to a node of type Reference. More... | |
virtual VariableRef * | as_variable_ref () |
Interprets this node to a node of type VariableRef. More... | |
virtual const VariableRef * | as_variable_ref () const |
Interprets this node to a node of type VariableRef. More... | |
virtual void | serialize (::tree::cbor::MapWriter &map, const ::tree::base::PointerMap &ids) const =0 |
Serializes this node to the given map. More... | |
Static Public Member Functions | |
static std::shared_ptr< Node > | deserialize (const ::tree::cbor::MapReader &map, ::tree::base::IdentifierMap &ids) |
Deserializes the given node. More... | |
Protected Member Functions | |
virtual void | visit_internal (VisitorBase &visitor, void *retval=nullptr)=0 |
Internal helper method for visiter pattern. More... | |
Main class for all nodes.
Definition at line 138 of file cqasm-v1-values-gen.hpp.
#include <cqasm-v1-values-gen.hpp>
|
pure virtual |
Returns the NodeType
of this node.
Implemented in cqasm::v1::values::VariableRef, cqasm::v1::values::QubitRefs, cqasm::v1::values::Function, cqasm::v1::values::ConstString, cqasm::v1::values::ConstRealMatrix, cqasm::v1::values::ConstReal, cqasm::v1::values::ConstJson, cqasm::v1::values::ConstInt, cqasm::v1::values::ConstComplexMatrix, cqasm::v1::values::ConstComplex, cqasm::v1::values::ConstBool, cqasm::v1::values::ConstAxis, and cqasm::v1::values::BitRefs.
Returns a shallow copy of this node.
Implemented in cqasm::v1::values::VariableRef, cqasm::v1::values::QubitRefs, cqasm::v1::values::Function, cqasm::v1::values::ConstString, cqasm::v1::values::ConstRealMatrix, cqasm::v1::values::ConstReal, cqasm::v1::values::ConstJson, cqasm::v1::values::ConstInt, cqasm::v1::values::ConstComplexMatrix, cqasm::v1::values::ConstComplex, cqasm::v1::values::ConstBool, cqasm::v1::values::ConstAxis, and cqasm::v1::values::BitRefs.
Returns a deep copy of this node.
Implemented in cqasm::v1::values::VariableRef, cqasm::v1::values::QubitRefs, cqasm::v1::values::Function, cqasm::v1::values::ConstString, cqasm::v1::values::ConstRealMatrix, cqasm::v1::values::ConstReal, cqasm::v1::values::ConstJson, cqasm::v1::values::ConstInt, cqasm::v1::values::ConstComplexMatrix, cqasm::v1::values::ConstComplex, cqasm::v1::values::ConstBool, cqasm::v1::values::ConstAxis, and cqasm::v1::values::BitRefs.
|
pure virtual |
Value-based equality operator.
Ignores annotations!
Implemented in cqasm::v1::values::VariableRef, cqasm::v1::values::QubitRefs, cqasm::v1::values::Function, cqasm::v1::values::ConstString, cqasm::v1::values::ConstRealMatrix, cqasm::v1::values::ConstReal, cqasm::v1::values::ConstJson, cqasm::v1::values::ConstInt, cqasm::v1::values::ConstComplexMatrix, cqasm::v1::values::ConstComplex, cqasm::v1::values::ConstBool, cqasm::v1::values::ConstAxis, and cqasm::v1::values::BitRefs.
|
pure virtual |
Pointer-based equality operator.
Implemented in cqasm::v1::values::VariableRef, cqasm::v1::values::QubitRefs, cqasm::v1::values::Function, cqasm::v1::values::ConstString, cqasm::v1::values::ConstRealMatrix, cqasm::v1::values::ConstReal, cqasm::v1::values::ConstJson, cqasm::v1::values::ConstInt, cqasm::v1::values::ConstComplexMatrix, cqasm::v1::values::ConstComplex, cqasm::v1::values::ConstBool, cqasm::v1::values::ConstAxis, and cqasm::v1::values::BitRefs.
|
inline |
Pointer-based inequality operator.
Definition at line 169 of file cqasm-v1-values-gen.hpp.
|
protectedpure virtual |
Internal helper method for visiter pattern.
Implemented in cqasm::v1::values::VariableRef, cqasm::v1::values::QubitRefs, cqasm::v1::values::Function, cqasm::v1::values::ConstString, cqasm::v1::values::ConstRealMatrix, cqasm::v1::values::ConstReal, cqasm::v1::values::ConstJson, cqasm::v1::values::ConstInt, cqasm::v1::values::ConstComplexMatrix, cqasm::v1::values::ConstComplex, cqasm::v1::values::ConstBool, cqasm::v1::values::ConstAxis, and cqasm::v1::values::BitRefs.
T cqasm::v1::values::Node::visit | ( | Visitor< T > & | visitor | ) |
Visit this object.
Definition at line 2410 of file cqasm-v1-values-gen.hpp.
void cqasm::v1::values::Node::dump | ( | std::ostream & | out = std::cout , |
int | indent = 0 |
||
) |
Writes a debug dump of this node to the given stream.
Definition at line 17 of file cqasm-v1-values-gen.cpp.
void cqasm::v1::values::Node::dump_seq | ( | std::ostream & | out = std::cout , |
int | indent = 0 |
||
) |
Alternate debug dump that represents links and node uniqueness via sequence number tags.
Definition at line 26 of file cqasm-v1-values-gen.cpp.
|
virtual |
Interprets this node to a node of type BitRefs.
Returns null if it has the wrong type.
Reimplemented in cqasm::v1::values::BitRefs.
Definition at line 39 of file cqasm-v1-values-gen.cpp.
|
virtual |
Interprets this node to a node of type BitRefs.
Returns null if it has the wrong type.
Reimplemented in cqasm::v1::values::BitRefs.
Definition at line 47 of file cqasm-v1-values-gen.cpp.
|
virtual |
Interprets this node to a node of type ConstAxis.
Returns null if it has the wrong type.
Reimplemented in cqasm::v1::values::ConstAxis.
Definition at line 55 of file cqasm-v1-values-gen.cpp.
|
virtual |
Interprets this node to a node of type ConstAxis.
Returns null if it has the wrong type.
Reimplemented in cqasm::v1::values::ConstAxis.
Definition at line 63 of file cqasm-v1-values-gen.cpp.
|
virtual |
Interprets this node to a node of type ConstBool.
Returns null if it has the wrong type.
Reimplemented in cqasm::v1::values::ConstBool.
Definition at line 71 of file cqasm-v1-values-gen.cpp.
|
virtual |
Interprets this node to a node of type ConstBool.
Returns null if it has the wrong type.
Reimplemented in cqasm::v1::values::ConstBool.
Definition at line 79 of file cqasm-v1-values-gen.cpp.
|
virtual |
Interprets this node to a node of type ConstComplex.
Returns null if it has the wrong type.
Reimplemented in cqasm::v1::values::ConstComplex.
Definition at line 87 of file cqasm-v1-values-gen.cpp.
|
virtual |
Interprets this node to a node of type ConstComplex.
Returns null if it has the wrong type.
Reimplemented in cqasm::v1::values::ConstComplex.
Definition at line 95 of file cqasm-v1-values-gen.cpp.
|
virtual |
Interprets this node to a node of type ConstComplexMatrix.
Returns null if it has the wrong type.
Reimplemented in cqasm::v1::values::ConstComplexMatrix.
Definition at line 103 of file cqasm-v1-values-gen.cpp.
|
virtual |
Interprets this node to a node of type ConstComplexMatrix.
Returns null if it has the wrong type.
Reimplemented in cqasm::v1::values::ConstComplexMatrix.
Definition at line 111 of file cqasm-v1-values-gen.cpp.
|
virtual |
Interprets this node to a node of type ConstInt.
Returns null if it has the wrong type.
Reimplemented in cqasm::v1::values::ConstInt.
Definition at line 119 of file cqasm-v1-values-gen.cpp.
|
virtual |
Interprets this node to a node of type ConstInt.
Returns null if it has the wrong type.
Reimplemented in cqasm::v1::values::ConstInt.
Definition at line 127 of file cqasm-v1-values-gen.cpp.
|
virtual |
Interprets this node to a node of type ConstJson.
Returns null if it has the wrong type.
Reimplemented in cqasm::v1::values::ConstJson.
Definition at line 135 of file cqasm-v1-values-gen.cpp.
|
virtual |
Interprets this node to a node of type ConstJson.
Returns null if it has the wrong type.
Reimplemented in cqasm::v1::values::ConstJson.
Definition at line 143 of file cqasm-v1-values-gen.cpp.
|
virtual |
Interprets this node to a node of type ConstReal.
Returns null if it has the wrong type.
Reimplemented in cqasm::v1::values::ConstReal.
Definition at line 151 of file cqasm-v1-values-gen.cpp.
|
virtual |
Interprets this node to a node of type ConstReal.
Returns null if it has the wrong type.
Reimplemented in cqasm::v1::values::ConstReal.
Definition at line 159 of file cqasm-v1-values-gen.cpp.
|
virtual |
Interprets this node to a node of type ConstRealMatrix.
Returns null if it has the wrong type.
Reimplemented in cqasm::v1::values::ConstRealMatrix.
Definition at line 167 of file cqasm-v1-values-gen.cpp.
|
virtual |
Interprets this node to a node of type ConstRealMatrix.
Returns null if it has the wrong type.
Reimplemented in cqasm::v1::values::ConstRealMatrix.
Definition at line 175 of file cqasm-v1-values-gen.cpp.
|
virtual |
Interprets this node to a node of type ConstString.
Returns null if it has the wrong type.
Reimplemented in cqasm::v1::values::ConstString.
Definition at line 183 of file cqasm-v1-values-gen.cpp.
|
virtual |
Interprets this node to a node of type ConstString.
Returns null if it has the wrong type.
Reimplemented in cqasm::v1::values::ConstString.
Definition at line 191 of file cqasm-v1-values-gen.cpp.
|
virtual |
Interprets this node to a node of type Constant.
Returns null if it has the wrong type.
Reimplemented in cqasm::v1::values::Constant.
Definition at line 199 of file cqasm-v1-values-gen.cpp.
|
virtual |
Interprets this node to a node of type Constant.
Returns null if it has the wrong type.
Reimplemented in cqasm::v1::values::Constant.
Definition at line 207 of file cqasm-v1-values-gen.cpp.
|
virtual |
Interprets this node to a node of type Function.
Returns null if it has the wrong type.
Reimplemented in cqasm::v1::values::Function.
Definition at line 215 of file cqasm-v1-values-gen.cpp.
|
virtual |
Interprets this node to a node of type Function.
Returns null if it has the wrong type.
Reimplemented in cqasm::v1::values::Function.
Definition at line 223 of file cqasm-v1-values-gen.cpp.
|
virtual |
Interprets this node to a node of type QubitRefs.
Returns null if it has the wrong type.
Reimplemented in cqasm::v1::values::QubitRefs.
Definition at line 231 of file cqasm-v1-values-gen.cpp.
|
virtual |
Interprets this node to a node of type QubitRefs.
Returns null if it has the wrong type.
Reimplemented in cqasm::v1::values::QubitRefs.
Definition at line 239 of file cqasm-v1-values-gen.cpp.
|
virtual |
Interprets this node to a node of type Reference.
Returns null if it has the wrong type.
Reimplemented in cqasm::v1::values::Reference.
Definition at line 247 of file cqasm-v1-values-gen.cpp.
|
virtual |
Interprets this node to a node of type Reference.
Returns null if it has the wrong type.
Reimplemented in cqasm::v1::values::Reference.
Definition at line 255 of file cqasm-v1-values-gen.cpp.
|
virtual |
Interprets this node to a node of type VariableRef.
Returns null if it has the wrong type.
Reimplemented in cqasm::v1::values::VariableRef.
Definition at line 263 of file cqasm-v1-values-gen.cpp.
|
virtual |
Interprets this node to a node of type VariableRef.
Returns null if it has the wrong type.
Reimplemented in cqasm::v1::values::VariableRef.
Definition at line 271 of file cqasm-v1-values-gen.cpp.
|
pure virtual |
Serializes this node to the given map.
Implemented in cqasm::v1::values::VariableRef, cqasm::v1::values::QubitRefs, cqasm::v1::values::Function, cqasm::v1::values::ConstString, cqasm::v1::values::ConstRealMatrix, cqasm::v1::values::ConstReal, cqasm::v1::values::ConstJson, cqasm::v1::values::ConstInt, cqasm::v1::values::ConstComplexMatrix, cqasm::v1::values::ConstComplex, cqasm::v1::values::ConstBool, cqasm::v1::values::ConstAxis, and cqasm::v1::values::BitRefs.
|
static |
Deserializes the given node.
Writes a debug dump of this node to the given stream.
Definition at line 278 of file cqasm-v1-values-gen.cpp.