libqasm
library for handling cQASM files
Classes | Namespaces | Typedefs | Enumerations | Functions
cqasm-v1-semantic-gen.hpp File Reference

Header file for the semantic tree node classes. More...

Go to the source code of this file.

Classes

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

Namespaces

 cqasm
 Toplevel namespace with entry points for the new API.
 
 cqasm::v1
 Namespace for the "new" cQASM 1.x API.
 
 cqasm::v1::semantic
 Namespace for the semantic tree node classes.
 

Typedefs

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

Enumerations

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

Functions

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

Detailed Description

Header file for the semantic tree node classes.

Definition in file cqasm-v1-semantic-gen.hpp.

#include <iostream>
#include "cqasm-tree.hpp"
#include "cqasm-v1-primitives.hpp"
#include "cqasm-v1-values.hpp"
#include "cqasm-v1-error-model.hpp"
#include "cqasm-v1-instruction.hpp"
Include dependency graph for cqasm-v1-semantic-gen.hpp:
This graph shows which files directly or indirectly include this file: