libqasm
library for handling cQASM files
|
Represents an annotation. More...
Public Member Functions | |
AnnotationData (const cqasm::v1::primitives::Str &interface=cqasm::v1::primitives::initialize< cqasm::v1::primitives::Str >(), const cqasm::v1::primitives::Str &operation=cqasm::v1::primitives::initialize< cqasm::v1::primitives::Str >(), const Any< cqasm::v1::values::Node > &operands=cqasm::v1::primitives::initialize< Any< cqasm::v1::values::Node >>()) | |
Constructor. More... | |
void | find_reachable (::tree::base::PointerMap &map) const override |
Registers all reachable nodes with the given PointerMap. More... | |
void | check_complete (const ::tree::base::PointerMap &map) const override |
Returns whether this AnnotationData is complete/fully defined. More... | |
NodeType | type () const override |
Returns the NodeType of this node. More... | |
AnnotationData * | as_annotation_data () override |
Interprets this node to a node of type AnnotationData. More... | |
const AnnotationData * | as_annotation_data () const override |
Interprets this node to a node of type AnnotationData. More... | |
One< Node > | copy () const override |
Returns a shallow copy of this node. More... | |
One< Node > | clone () const override |
Returns a deep copy of this node. More... | |
bool | equals (const Node &rhs) const override |
Value-based equality operator. More... | |
bool | operator== (const Node &rhs) const override |
Pointer-based equality operator. More... | |
void | serialize (::tree::cbor::MapWriter &map, const ::tree::base::PointerMap &ids) const override |
Serializes this node to the given map. 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 Annotated * | as_annotated () |
Interprets this node to a node of type Annotated. More... | |
virtual const Annotated * | as_annotated () const |
Interprets this node to a node of type Annotated. More... | |
virtual Block * | as_block () |
Interprets this node to a node of type Block. More... | |
virtual const Block * | as_block () const |
Interprets this node to a node of type Block. More... | |
virtual BreakStatement * | as_break_statement () |
Interprets this node to a node of type BreakStatement. More... | |
virtual const BreakStatement * | as_break_statement () const |
Interprets this node to a node of type BreakStatement. More... | |
virtual Bundle * | as_bundle () |
Interprets this node to a node of type Bundle. More... | |
virtual const Bundle * | as_bundle () const |
Interprets this node to a node of type Bundle. More... | |
virtual BundleExt * | as_bundle_ext () |
Interprets this node to a node of type BundleExt. More... | |
virtual const BundleExt * | as_bundle_ext () const |
Interprets this node to a node of type BundleExt. More... | |
virtual ContinueStatement * | as_continue_statement () |
Interprets this node to a node of type ContinueStatement. More... | |
virtual const ContinueStatement * | as_continue_statement () const |
Interprets this node to a node of type ContinueStatement. More... | |
virtual ErrorModel * | as_error_model () |
Interprets this node to a node of type ErrorModel. More... | |
virtual const ErrorModel * | as_error_model () const |
Interprets this node to a node of type ErrorModel. More... | |
virtual ForLoop * | as_for_loop () |
Interprets this node to a node of type ForLoop. More... | |
virtual const ForLoop * | as_for_loop () const |
Interprets this node to a node of type ForLoop. More... | |
virtual ForeachLoop * | as_foreach_loop () |
Interprets this node to a node of type ForeachLoop. More... | |
virtual const ForeachLoop * | as_foreach_loop () const |
Interprets this node to a node of type ForeachLoop. More... | |
virtual GotoInstruction * | as_goto_instruction () |
Interprets this node to a node of type GotoInstruction. More... | |
virtual const GotoInstruction * | as_goto_instruction () const |
Interprets this node to a node of type GotoInstruction. More... | |
virtual IfElse * | as_if_else () |
Interprets this node to a node of type IfElse. More... | |
virtual const IfElse * | as_if_else () const |
Interprets this node to a node of type IfElse. More... | |
virtual IfElseBranch * | as_if_else_branch () |
Interprets this node to a node of type IfElseBranch. More... | |
virtual const IfElseBranch * | as_if_else_branch () const |
Interprets this node to a node of type IfElseBranch. More... | |
virtual Instruction * | as_instruction () |
Interprets this node to a node of type Instruction. More... | |
virtual const Instruction * | as_instruction () const |
Interprets this node to a node of type Instruction. More... | |
virtual InstructionBase * | as_instruction_base () |
Interprets this node to a node of type InstructionBase. More... | |
virtual const InstructionBase * | as_instruction_base () const |
Interprets this node to a node of type InstructionBase. More... | |
virtual Mapping * | as_mapping () |
Interprets this node to a node of type Mapping. More... | |
virtual const Mapping * | as_mapping () const |
Interprets this node to a node of type Mapping. More... | |
virtual Program * | as_program () |
Interprets this node to a node of type Program. More... | |
virtual const Program * | as_program () const |
Interprets this node to a node of type Program. More... | |
virtual RepeatUntilLoop * | as_repeat_until_loop () |
Interprets this node to a node of type RepeatUntilLoop. More... | |
virtual const RepeatUntilLoop * | as_repeat_until_loop () const |
Interprets this node to a node of type RepeatUntilLoop. More... | |
virtual SetInstruction * | as_set_instruction () |
Interprets this node to a node of type SetInstruction. More... | |
virtual const SetInstruction * | as_set_instruction () const |
Interprets this node to a node of type SetInstruction. More... | |
virtual Statement * | as_statement () |
Interprets this node to a node of type Statement. More... | |
virtual const Statement * | as_statement () const |
Interprets this node to a node of type Statement. More... | |
virtual Structured * | as_structured () |
Interprets this node to a node of type Structured. More... | |
virtual const Structured * | as_structured () const |
Interprets this node to a node of type Structured. More... | |
virtual Subcircuit * | as_subcircuit () |
Interprets this node to a node of type Subcircuit. More... | |
virtual const Subcircuit * | as_subcircuit () const |
Interprets this node to a node of type Subcircuit. More... | |
virtual Variable * | as_variable () |
Interprets this node to a node of type Variable. More... | |
virtual const Variable * | as_variable () const |
Interprets this node to a node of type Variable. More... | |
virtual Version * | as_version () |
Interprets this node to a node of type Version. More... | |
virtual const Version * | as_version () const |
Interprets this node to a node of type Version. More... | |
virtual WhileLoop * | as_while_loop () |
Interprets this node to a node of type WhileLoop. More... | |
virtual const WhileLoop * | as_while_loop () const |
Interprets this node to a node of type WhileLoop. More... | |
Static Public Member Functions | |
static std::shared_ptr< AnnotationData > | deserialize (const ::tree::cbor::MapReader &map, ::tree::base::IdentifierMap &ids) |
Deserializes the given node. More... | |
![]() | |
static std::shared_ptr< Node > | deserialize (const ::tree::cbor::MapReader &map, ::tree::base::IdentifierMap &ids) |
Deserializes the given node. More... | |
Public Attributes | |
cqasm::v1::primitives::Str | interface |
The interface this annotation is intended for. More... | |
cqasm::v1::primitives::Str | operation |
The operation within the interface that this annotation is intended for. More... | |
Any< cqasm::v1::values::Node > | operands |
Any operands attached to the annotation. More... | |
Protected Member Functions | |
void | visit_internal (VisitorBase &visitor, void *retval) override |
Helper method for visiting nodes. More... | |
Represents an annotation.
Definition at line 639 of file cqasm-v1-semantic-gen.hpp.
#include <cqasm-v1-semantic-gen.hpp>
cqasm::v1::semantic::AnnotationData::AnnotationData | ( | const cqasm::v1::primitives::Str & | interface = cqasm::v1::primitives::initialize<cqasm::v1::primitives::Str>() , |
const cqasm::v1::primitives::Str & | operation = cqasm::v1::primitives::initialize<cqasm::v1::primitives::Str>() , |
||
const Any< cqasm::v1::values::Node > & | operands = cqasm::v1::primitives::initialize<Any<cqasm::v1::values::Node>>() |
||
) |
Constructor.
Definition at line 515 of file cqasm-v1-semantic-gen.cpp.
|
override |
Registers all reachable nodes with the given PointerMap.
Definition at line 522 of file cqasm-v1-semantic-gen.cpp.
|
override |
Returns whether this AnnotationData
is complete/fully defined.
Definition at line 530 of file cqasm-v1-semantic-gen.cpp.
|
overridevirtual |
Returns the NodeType
of this node.
Implements cqasm::v1::semantic::Node.
Definition at line 538 of file cqasm-v1-semantic-gen.cpp.
|
overrideprotectedvirtual |
Helper method for visiting nodes.
Implements cqasm::v1::semantic::Node.
Definition at line 545 of file cqasm-v1-semantic-gen.cpp.
|
overridevirtual |
Interprets this node to a node of type AnnotationData.
Returns null if it has the wrong type.
Reimplemented from cqasm::v1::semantic::Node.
Definition at line 553 of file cqasm-v1-semantic-gen.cpp.
|
overridevirtual |
Interprets this node to a node of type AnnotationData.
Returns null if it has the wrong type.
Reimplemented from cqasm::v1::semantic::Node.
Definition at line 561 of file cqasm-v1-semantic-gen.cpp.
Returns a shallow copy of this node.
Implements cqasm::v1::semantic::Node.
Definition at line 568 of file cqasm-v1-semantic-gen.cpp.
Returns a deep copy of this node.
Implements cqasm::v1::semantic::Node.
Definition at line 575 of file cqasm-v1-semantic-gen.cpp.
|
overridevirtual |
Value-based equality operator.
Ignores annotations!
Implements cqasm::v1::semantic::Node.
Definition at line 584 of file cqasm-v1-semantic-gen.cpp.
|
overridevirtual |
Pointer-based equality operator.
Implements cqasm::v1::semantic::Node.
Definition at line 596 of file cqasm-v1-semantic-gen.cpp.
|
overridevirtual |
Serializes this node to the given map.
Implements cqasm::v1::semantic::Node.
Definition at line 608 of file cqasm-v1-semantic-gen.cpp.
|
static |
Deserializes the given node.
Writes a debug dump of this node to the given stream.
Definition at line 629 of file cqasm-v1-semantic-gen.cpp.
cqasm::v1::primitives::Str cqasm::v1::semantic::AnnotationData::interface |
The interface this annotation is intended for.
If a target doesn't support an interface, it should silently ignore the annotation.
Definition at line 646 of file cqasm-v1-semantic-gen.hpp.
cqasm::v1::primitives::Str cqasm::v1::semantic::AnnotationData::operation |
The operation within the interface that this annotation is intended for.
If a supports the corresponding interface but not the operation, it should throw an error.
Definition at line 653 of file cqasm-v1-semantic-gen.hpp.
Any<cqasm::v1::values::Node> cqasm::v1::semantic::AnnotationData::operands |
Any operands attached to the annotation.
Definition at line 658 of file cqasm-v1-semantic-gen.hpp.