qat.frontend.parsers.qasm.qasm2 module

class CloudQasmParser

Bases: RestrictedQasm2Parser

QASM parser used in our QCaaS system.

class Qasm2Parser(order_result_vars=False, raw_results=False)

Bases: AbstractParser

ecr_gate = Instruction(name='ecr', num_qubits=2, num_clbits=0, params=[])
modify(circ)

Allows children to transform the program before validation/transforming into our AST occurs.

parse(builder, qasm)
Return type:

QuantumInstructionBuilder

parser_language()
Return type:

Languages

process_barrier(node, context, builder, **kwargs)
process_cnot(node, context, builder, **kwargs)
process_creg(node, context, builder, **kwargs)
process_delay(node, context, builder, **kwargs)
process_gate(node, context, builder, **kwargs)

Process a gate call.

process_gate_definition(node, context, _, **kwargs)
process_intrinsic(node, context, builder)
process_measure(node, context, builder, **kwargs)
process_program(builder, circ)
Return type:

QuantumInstructionBuilder

process_qreg(node, context, builder, **kwargs)
process_reset(node, context, builder, **kwargs)
process_unitary(node, context, builder, **kwargs)

Unitary in QASM terms is just U(...).

validate(circ)
walk_node(node, context, builder, **kwargs)

Process each individual QASM node, builds context or forwards processing to relevant process_x method associated with each node type.

class RestrictedQasm2Parser(allowed_gates=None, disable_if=False, *args, **kwargs)

Bases: Qasm2Parser

Parser which only allows certain gates to be passed.

validate(circ)