libqasm
library for handling cQASM files
Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | List of all members
cqasm::v1::semantic::Instruction Class Reference

A regular instruction. More...

Public Member Functions

 Instruction (const cqasm::v1::instruction::InstructionRef &instruction=cqasm::v1::primitives::initialize< cqasm::v1::instruction::InstructionRef >(), const cqasm::v1::primitives::Str &name=cqasm::v1::primitives::initialize< cqasm::v1::primitives::Str >(), const One< cqasm::v1::values::Node > &condition=cqasm::v1::primitives::initialize< One< cqasm::v1::values::Node >>(), const Any< cqasm::v1::values::Node > &operands=cqasm::v1::primitives::initialize< Any< cqasm::v1::values::Node >>(), const Any< AnnotationData > &annotations=Any< AnnotationData >())
 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 Instruction is complete/fully defined. More...
 
NodeType type () const override
 Returns the NodeType of this node. More...
 
Instructionas_instruction () override
 Interprets this node to a node of type Instruction. More...
 
const Instructionas_instruction () const override
 Interprets this node to a node of type Instruction. More...
 
One< Nodecopy () const override
 Returns a shallow copy of this node. More...
 
One< Nodeclone () 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...
 
- Public Member Functions inherited from cqasm::v1::semantic::InstructionBase
 InstructionBase (const One< cqasm::v1::values::Node > &condition=cqasm::v1::primitives::initialize< One< cqasm::v1::values::Node >>(), const Any< AnnotationData > &annotations=Any< AnnotationData >())
 Constructor. More...
 
InstructionBaseas_instruction_base () override
 Interprets this node to a node of type InstructionBase. More...
 
const InstructionBaseas_instruction_base () const override
 Interprets this node to a node of type InstructionBase. More...
 
- Public Member Functions inherited from cqasm::v1::semantic::Annotated
 Annotated (const Any< AnnotationData > &annotations=Any< AnnotationData >())
 Constructor. More...
 
Annotatedas_annotated () override
 Interprets this node to a node of type Annotated. More...
 
const Annotatedas_annotated () const override
 Interprets this node to a node of type Annotated. More...
 
- Public Member Functions inherited from cqasm::v1::semantic::Node
bool operator!= (const Node &rhs) const
 Pointer-based inequality operator. More...
 
template<typename 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 AnnotationDataas_annotation_data ()
 Interprets this node to a node of type AnnotationData. More...
 
virtual const AnnotationDataas_annotation_data () const
 Interprets this node to a node of type AnnotationData. More...
 
virtual Blockas_block ()
 Interprets this node to a node of type Block. More...
 
virtual const Blockas_block () const
 Interprets this node to a node of type Block. More...
 
virtual BreakStatementas_break_statement ()
 Interprets this node to a node of type BreakStatement. More...
 
virtual const BreakStatementas_break_statement () const
 Interprets this node to a node of type BreakStatement. More...
 
virtual Bundleas_bundle ()
 Interprets this node to a node of type Bundle. More...
 
virtual const Bundleas_bundle () const
 Interprets this node to a node of type Bundle. More...
 
virtual BundleExtas_bundle_ext ()
 Interprets this node to a node of type BundleExt. More...
 
virtual const BundleExtas_bundle_ext () const
 Interprets this node to a node of type BundleExt. More...
 
virtual ContinueStatementas_continue_statement ()
 Interprets this node to a node of type ContinueStatement. More...
 
virtual const ContinueStatementas_continue_statement () const
 Interprets this node to a node of type ContinueStatement. More...
 
virtual ErrorModelas_error_model ()
 Interprets this node to a node of type ErrorModel. More...
 
virtual const ErrorModelas_error_model () const
 Interprets this node to a node of type ErrorModel. More...
 
virtual ForLoopas_for_loop ()
 Interprets this node to a node of type ForLoop. More...
 
virtual const ForLoopas_for_loop () const
 Interprets this node to a node of type ForLoop. More...
 
virtual ForeachLoopas_foreach_loop ()
 Interprets this node to a node of type ForeachLoop. More...
 
virtual const ForeachLoopas_foreach_loop () const
 Interprets this node to a node of type ForeachLoop. More...
 
virtual GotoInstructionas_goto_instruction ()
 Interprets this node to a node of type GotoInstruction. More...
 
virtual const GotoInstructionas_goto_instruction () const
 Interprets this node to a node of type GotoInstruction. More...
 
virtual IfElseas_if_else ()
 Interprets this node to a node of type IfElse. More...
 
virtual const IfElseas_if_else () const
 Interprets this node to a node of type IfElse. More...
 
virtual IfElseBranchas_if_else_branch ()
 Interprets this node to a node of type IfElseBranch. More...
 
virtual const IfElseBranchas_if_else_branch () const
 Interprets this node to a node of type IfElseBranch. More...
 
virtual Mappingas_mapping ()
 Interprets this node to a node of type Mapping. More...
 
virtual const Mappingas_mapping () const
 Interprets this node to a node of type Mapping. More...
 
virtual Programas_program ()
 Interprets this node to a node of type Program. More...
 
virtual const Programas_program () const
 Interprets this node to a node of type Program. More...
 
virtual RepeatUntilLoopas_repeat_until_loop ()
 Interprets this node to a node of type RepeatUntilLoop. More...
 
virtual const RepeatUntilLoopas_repeat_until_loop () const
 Interprets this node to a node of type RepeatUntilLoop. More...
 
virtual SetInstructionas_set_instruction ()
 Interprets this node to a node of type SetInstruction. More...
 
virtual const SetInstructionas_set_instruction () const
 Interprets this node to a node of type SetInstruction. More...
 
virtual Statementas_statement ()
 Interprets this node to a node of type Statement. More...
 
virtual const Statementas_statement () const
 Interprets this node to a node of type Statement. More...
 
virtual Structuredas_structured ()
 Interprets this node to a node of type Structured. More...
 
virtual const Structuredas_structured () const
 Interprets this node to a node of type Structured. More...
 
virtual Subcircuitas_subcircuit ()
 Interprets this node to a node of type Subcircuit. More...
 
virtual const Subcircuitas_subcircuit () const
 Interprets this node to a node of type Subcircuit. More...
 
virtual Variableas_variable ()
 Interprets this node to a node of type Variable. More...
 
virtual const Variableas_variable () const
 Interprets this node to a node of type Variable. More...
 
virtual Versionas_version ()
 Interprets this node to a node of type Version. More...
 
virtual const Versionas_version () const
 Interprets this node to a node of type Version. More...
 
virtual WhileLoopas_while_loop ()
 Interprets this node to a node of type WhileLoop. More...
 
virtual const WhileLoopas_while_loop () const
 Interprets this node to a node of type WhileLoop. More...
 

Static Public Member Functions

static std::shared_ptr< Instructiondeserialize (const ::tree::cbor::MapReader &map, ::tree::base::IdentifierMap &ids)
 Deserializes the given node. More...
 
- Static Public Member Functions inherited from cqasm::v1::semantic::InstructionBase
static std::shared_ptr< InstructionBasedeserialize (const ::tree::cbor::MapReader &map, ::tree::base::IdentifierMap &ids)
 Deserializes the given node. More...
 
- Static Public Member Functions inherited from cqasm::v1::semantic::Annotated
static std::shared_ptr< Annotateddeserialize (const ::tree::cbor::MapReader &map, ::tree::base::IdentifierMap &ids)
 Deserializes the given node. More...
 
- Static Public Member Functions inherited from cqasm::v1::semantic::Node
static std::shared_ptr< Nodedeserialize (const ::tree::cbor::MapReader &map, ::tree::base::IdentifierMap &ids)
 Deserializes the given node. More...
 

Public Attributes

cqasm::v1::instruction::InstructionRef instruction
 Instruction type as registered through the API. More...
 
cqasm::v1::primitives::Str name
 Name as it appears in the cQASM file. More...
 
Any< cqasm::v1::values::Nodeoperands
 Operands for the instruction. More...
 
- Public Attributes inherited from cqasm::v1::semantic::InstructionBase
One< cqasm::v1::values::Nodecondition
 Condition (c- notation). More...
 
- Public Attributes inherited from cqasm::v1::semantic::Annotated
Any< AnnotationDataannotations
 Zero or more annotations attached to this object. More...
 

Protected Member Functions

void visit_internal (VisitorBase &visitor, void *retval) override
 Helper method for visiting nodes. More...
 

Detailed Description

A regular instruction.

Until 1.2, this is the only type of instruction that exists.

Definition at line 1838 of file cqasm-v1-semantic-gen.hpp.

#include <cqasm-v1-semantic-gen.hpp>

Inheritance diagram for cqasm::v1::semantic::Instruction:
Inheritance graph
[legend]
Collaboration diagram for cqasm::v1::semantic::Instruction:
Collaboration graph
[legend]

Constructor & Destructor Documentation

◆ Instruction()

Constructor.

Definition at line 2231 of file cqasm-v1-semantic-gen.cpp.

Member Function Documentation

◆ find_reachable()

void cqasm::v1::semantic::Instruction::find_reachable ( ::tree::base::PointerMap &  map) const
override

Registers all reachable nodes with the given PointerMap.

Definition at line 2238 of file cqasm-v1-semantic-gen.cpp.

◆ check_complete()

void cqasm::v1::semantic::Instruction::check_complete ( const ::tree::base::PointerMap &  map) const
override

Returns whether this Instruction is complete/fully defined.

Definition at line 2248 of file cqasm-v1-semantic-gen.cpp.

◆ type()

NodeType cqasm::v1::semantic::Instruction::type ( ) const
overridevirtual

Returns the NodeType of this node.

Implements cqasm::v1::semantic::Node.

Definition at line 2258 of file cqasm-v1-semantic-gen.cpp.

◆ visit_internal()

void cqasm::v1::semantic::Instruction::visit_internal ( VisitorBase visitor,
void *  retval 
)
overrideprotectedvirtual

Helper method for visiting nodes.

Implements cqasm::v1::semantic::Node.

Definition at line 2265 of file cqasm-v1-semantic-gen.cpp.

◆ as_instruction() [1/2]

Instruction * cqasm::v1::semantic::Instruction::as_instruction ( )
overridevirtual

Interprets this node to a node of type Instruction.

Returns null if it has the wrong type.

Reimplemented from cqasm::v1::semantic::Node.

Definition at line 2273 of file cqasm-v1-semantic-gen.cpp.

◆ as_instruction() [2/2]

const Instruction * cqasm::v1::semantic::Instruction::as_instruction ( ) const
overridevirtual

Interprets this node to a node of type Instruction.

Returns null if it has the wrong type.

Reimplemented from cqasm::v1::semantic::Node.

Definition at line 2281 of file cqasm-v1-semantic-gen.cpp.

◆ copy()

One< Node > cqasm::v1::semantic::Instruction::copy ( ) const
overridevirtual

Returns a shallow copy of this node.

Implements cqasm::v1::semantic::Node.

Definition at line 2288 of file cqasm-v1-semantic-gen.cpp.

◆ clone()

One< Node > cqasm::v1::semantic::Instruction::clone ( ) const
overridevirtual

Returns a deep copy of this node.

Implements cqasm::v1::semantic::Node.

Definition at line 2295 of file cqasm-v1-semantic-gen.cpp.

◆ equals()

bool cqasm::v1::semantic::Instruction::equals ( const Node rhs) const
overridevirtual

Value-based equality operator.

Ignores annotations!

Implements cqasm::v1::semantic::Node.

Definition at line 2306 of file cqasm-v1-semantic-gen.cpp.

◆ operator==()

bool cqasm::v1::semantic::Instruction::operator== ( const Node rhs) const
overridevirtual

Pointer-based equality operator.

Implements cqasm::v1::semantic::Node.

Definition at line 2320 of file cqasm-v1-semantic-gen.cpp.

◆ serialize()

void cqasm::v1::semantic::Instruction::serialize ( ::tree::cbor::MapWriter &  map,
const ::tree::base::PointerMap &  ids 
) const
overridevirtual

Serializes this node to the given map.

Implements cqasm::v1::semantic::Node.

Definition at line 2334 of file cqasm-v1-semantic-gen.cpp.

◆ deserialize()

std::shared_ptr< Instruction > cqasm::v1::semantic::Instruction::deserialize ( const ::tree::cbor::MapReader &  map,
::tree::base::IdentifierMap &  ids 
)
static

Deserializes the given node.

Writes a debug dump of this node to the given stream.

Definition at line 2361 of file cqasm-v1-semantic-gen.cpp.

Member Data Documentation

◆ instruction

cqasm::v1::instruction::InstructionRef cqasm::v1::semantic::Instruction::instruction

Instruction type as registered through the API.

Definition at line 1844 of file cqasm-v1-semantic-gen.hpp.

◆ name

cqasm::v1::primitives::Str cqasm::v1::semantic::Instruction::name

Name as it appears in the cQASM file.

Definition at line 1849 of file cqasm-v1-semantic-gen.hpp.

◆ operands

Any<cqasm::v1::values::Node> cqasm::v1::semantic::Instruction::operands

Operands for the instruction.

Definition at line 1854 of file cqasm-v1-semantic-gen.hpp.


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