libqasm
library for handling cQASM files
Classes | Typedefs | Enumerations | Functions
cqasm::v1::semantic Namespace Reference

Detailed Description

Namespace for the semantic tree node classes.

dot_inline_dotgraph_2.png

Classes

class  Annotated
 Represents a node that carries annotation data. More...
 
class  AnnotationData
 Represents an annotation. More...
 
class  Block
 A block of statements. More...
 
class  BreakStatement
 A break statement. More...
 
class  Bundle
 A bundle of instructions, to be executed in parallel. More...
 
class  BundleExt
 A bundle of instructions, to be executed in parallel. More...
 
class  ContinueStatement
 A continue statement. More...
 
class  Dumper
 Visitor class that debug-dumps a tree to a stream. More...
 
class  ErrorModel
 Error model information. More...
 
class  ForeachLoop
 A foreach loop. More...
 
class  ForLoop
 A C-style for loop. More...
 
class  GotoInstruction
 A version 1.2+ goto instruction. More...
 
class  IfElse
 An if-else chain. More...
 
class  IfElseBranch
 A single condition + block for use in an if-else chain. More...
 
class  Instruction
 A regular instruction. More...
 
class  InstructionBase
 An instruction (a.k.a. More...
 
class  Mapping
 A mapping. More...
 
class  Node
 Main class for all nodes. More...
 
class  Program
 A complete program. More...
 
class  RecursiveVisitor
 Visitor base class defaulting to DFS pre-order traversal. More...
 
class  RepeatUntilLoop
 A repeat-until loop. More...
 
class  SetInstruction
 A version 1.2+ assignment instruction. More...
 
class  Statement
 A statement. More...
 
class  Structured
 Any version 1.2+ structured control-flow statement. More...
 
class  Subcircuit
 A subcircuit. More...
 
class  Variable
 A variable. More...
 
class  Version
 The file version identifier. More...
 
class  Visitor
 Base class for the visitor pattern for the tree. More...
 
class  VisitorBase
 Internal class for implementing the visitor pattern. More...
 
class  WhileLoop
 A while loop. More...
 

Typedefs

using Base = cqasm::tree::Base
 
template<class T >
using Maybe = cqasm::tree::Maybe< T >
 
template<class T >
using One = cqasm::tree::One< T >
 
template<class T >
using Any = cqasm::tree::Any< T >
 
template<class T >
using Many = cqasm::tree::Many< T >
 
template<class T >
using OptLink = cqasm::tree::OptLink< T >
 
template<class T >
using Link = cqasm::tree::Link< T >
 

Enumerations

enum  NodeType {
  NodeType::AnnotationData, NodeType::Block, NodeType::BreakStatement, NodeType::Bundle,
  NodeType::BundleExt, NodeType::ContinueStatement, NodeType::ErrorModel, NodeType::ForLoop,
  NodeType::ForeachLoop, NodeType::GotoInstruction, NodeType::IfElse, NodeType::IfElseBranch,
  NodeType::Instruction, NodeType::Mapping, NodeType::Program, NodeType::RepeatUntilLoop,
  NodeType::SetInstruction, NodeType::Subcircuit, NodeType::Variable, NodeType::Version,
  NodeType::WhileLoop
}
 Enumeration of all node types. More...
 

Functions

std::ostream & operator<< (std::ostream &os, const Node &object)
 Stream << overload for tree nodes (writes debug dump). More...
 

Typedef Documentation

◆ Base

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

◆ Maybe

template<class T >
using cqasm::v1::semantic::Maybe = typedef cqasm::tree::Maybe<T>

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

◆ One

template<class T >
using cqasm::v1::semantic::One = typedef cqasm::tree::One<T>

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

◆ Any

template<class T >
using cqasm::v1::semantic::Any = typedef cqasm::tree::Any<T>

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

◆ Many

template<class T >
using cqasm::v1::semantic::Many = typedef cqasm::tree::Many<T>

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

◆ OptLink

template<class T >
using cqasm::v1::semantic::OptLink = typedef cqasm::tree::OptLink<T>

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

◆ Link

template<class T >
using cqasm::v1::semantic::Link = typedef cqasm::tree::Link<T>

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

Enumeration Type Documentation

◆ NodeType

Enumeration of all node types.

Enumerator
AnnotationData 
Block 
BreakStatement 
Bundle 
BundleExt 
ContinueStatement 
ErrorModel 
ForLoop 
ForeachLoop 
GotoInstruction 
IfElse 
IfElseBranch 
Instruction 
Mapping 
Program 
RepeatUntilLoop 
SetInstruction 
Subcircuit 
Variable 
Version 
WhileLoop 

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

Function Documentation

◆ operator<<()

std::ostream & cqasm::v1::semantic::operator<< ( std::ostream &  os,
const Node object 
)

Stream << overload for tree nodes (writes debug dump).

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