Defines the types for the cQASM abstract syntax tree, based on the classes from cqasm::tree.
types::Types types_of(const Values &values)
Returns the types of the given values.
std::ostream & operator<<(std::ostream &os, const Value &value)
Stream << overload for a single value.
types::Type type_of(const Value &value)
Returns the type of the given value.
Toplevel namespace with entry points for the new API.
tree::Any< Node > Values
Zero or more cQASM values.
Value promote(const Value &value, const types::Type &type)
Type-checks and (if necessary) promotes the given value to the given type.
Namespace for the "new" cQASM 1.x API.
tree::One< Node > Value
A cQASM value, either known at compile-time or an expression for something only known at runtime...
tree::One< TypeBase > Type
A cQASM type.
::tree::base::Any< T > Any
void check_const(const Value &value)
Throws an AnalysisError if the given value is not a constant, i.e.
tree::Any< TypeBase > Types
Zero or more cQASM types.
Header file for the various classes representing constants, references, and dynamic expressions in cQ...
::tree::base::One< T > One
Defines the types of values available within cQASM's type system, as well as some utility functions...