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::RepeatUntilLoop Class Reference

A repeat-until loop. More...

Public Member Functions

 RepeatUntilLoop (const One< Block > &body=One< Block >(), const One< cqasm::v1::values::Node > &condition=cqasm::v1::primitives::initialize< One< 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 RepeatUntilLoop is complete/fully defined. More...
 
NodeType type () const override
 Returns the NodeType of this node. More...
 
RepeatUntilLoopas_repeat_until_loop () override
 Interprets this node to a node of type RepeatUntilLoop. More...
 
const RepeatUntilLoopas_repeat_until_loop () const override
 Interprets this node to a node of type RepeatUntilLoop. 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::Structured
 Structured (const Any< AnnotationData > &annotations=Any< AnnotationData >())
 Constructor. More...
 
Structuredas_structured () override
 Interprets this node to a node of type Structured. More...
 
const Structuredas_structured () const override
 Interprets this node to a node of type Structured. More...
 
- Public Member Functions inherited from cqasm::v1::semantic::Statement
 Statement (const Any< AnnotationData > &annotations=Any< AnnotationData >())
 Constructor. More...
 
Statementas_statement () override
 Interprets this node to a node of type Statement. More...
 
const Statementas_statement () const override
 Interprets this node to a node of type Statement. 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 Instructionas_instruction ()
 Interprets this node to a node of type Instruction. More...
 
virtual const Instructionas_instruction () const
 Interprets this node to a node of type Instruction. More...
 
virtual InstructionBaseas_instruction_base ()
 Interprets this node to a node of type InstructionBase. More...
 
virtual const InstructionBaseas_instruction_base () const
 Interprets this node to a node of type InstructionBase. 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 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 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< RepeatUntilLoopdeserialize (const ::tree::cbor::MapReader &map, ::tree::base::IdentifierMap &ids)
 Deserializes the given node. More...
 
- Static Public Member Functions inherited from cqasm::v1::semantic::Structured
static std::shared_ptr< Structureddeserialize (const ::tree::cbor::MapReader &map, ::tree::base::IdentifierMap &ids)
 Deserializes the given node. More...
 
- Static Public Member Functions inherited from cqasm::v1::semantic::Statement
static std::shared_ptr< Statementdeserialize (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

One< Blockbody
 The loop body. More...
 
One< cqasm::v1::values::Nodecondition
 The condition for stopping iteration. 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 repeat-until loop.

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

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

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

Constructor & Destructor Documentation

◆ RepeatUntilLoop()

cqasm::v1::semantic::RepeatUntilLoop::RepeatUntilLoop ( const One< Block > &  body = One<Block>(),
const One< cqasm::v1::values::Node > &  condition = cqasm::v1::primitives::initialize<One<cqasm::v1::values::Node>>(),
const Any< AnnotationData > &  annotations = Any<AnnotationData>() 
)

Constructor.

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

Member Function Documentation

◆ find_reachable()

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

Registers all reachable nodes with the given PointerMap.

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

◆ check_complete()

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

Returns whether this RepeatUntilLoop is complete/fully defined.

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

◆ type()

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

Returns the NodeType of this node.

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

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

◆ visit_internal()

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

Helper method for visiting nodes.

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

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

◆ as_repeat_until_loop() [1/2]

RepeatUntilLoop * cqasm::v1::semantic::RepeatUntilLoop::as_repeat_until_loop ( )
overridevirtual

Interprets this node to a node of type RepeatUntilLoop.

Returns null if it has the wrong type.

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

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

◆ as_repeat_until_loop() [2/2]

const RepeatUntilLoop * cqasm::v1::semantic::RepeatUntilLoop::as_repeat_until_loop ( ) const
overridevirtual

Interprets this node to a node of type RepeatUntilLoop.

Returns null if it has the wrong type.

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

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

◆ copy()

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

Returns a shallow copy of this node.

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

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

◆ clone()

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

Returns a deep copy of this node.

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

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

◆ equals()

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

Value-based equality operator.

Ignores annotations!

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

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

◆ operator==()

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

Pointer-based equality operator.

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

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

◆ serialize()

void cqasm::v1::semantic::RepeatUntilLoop::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 2783 of file cqasm-v1-semantic-gen.cpp.

◆ deserialize()

std::shared_ptr< RepeatUntilLoop > cqasm::v1::semantic::RepeatUntilLoop::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 2804 of file cqasm-v1-semantic-gen.cpp.

Member Data Documentation

◆ body

One<Block> cqasm::v1::semantic::RepeatUntilLoop::body

The loop body.

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

◆ condition

One<cqasm::v1::values::Node> cqasm::v1::semantic::RepeatUntilLoop::condition

The condition for stopping iteration.

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


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