qbraid.transpiler.cirq_qasm package
Submodules
qbraid.transpiler.cirq_qasm.qasm_conversions module
Module for conversions between Cirq Circuits and QASM strings
- to_qasm(circuit, header=None, precision=10, qubit_order=<cirq.ops.qubit_order.QubitOrder object>)[source]
Returns a QASM string representing the input Cirq circuit.
- Parameters
circuit (
Circuit
) – Cirq circuit to convert to a QASM string.- Returns
QASM string equivalent to the input Cirq circuit.
- Return type
QASMType
qbraid.transpiler.cirq_qasm.qasm_parser module
Module defining qBraid Cirq QASM parser.
- class Qasm(supported_format, qelib1_include, qregs, cregs, c)[source]
Bases:
object
Qasm stores the final result of the Qasm parsing.
- class QasmGateStatement(qasm_gate, cirq_gate, num_params, num_args)[source]
Bases:
object
Specifies how to convert a call to an OpenQASM gate to a list of cirq.GateOperation’s. Has the responsibility to validate the arguments and parameters of the call and to generate a list of corresponding cirq.GateOperation’s in the ‘on’ method.
Initializes a Qasm gate statement. :type qasm_gate:
str
:param qasm_gate: The symbol of the QASM gate. :type cirq_gate:Union
[Gate
,Callable
[[List
[float
]],Gate
]] :param cirq_gate: The gate class on the cirq side. :type num_params:int
:param num_params: The number of params taken by this gate. :type num_args:int
:param num_args: The number of qubits (used in validation) this gate takes.
- class QasmParser[source]
Bases:
object
Parser for QASM strings. .. rubric:: Example
qasm = “OPENQASM 2.0; qreg q1[2]; CX q1[0], q1[1];” parsedQasm = QasmParser().parse(qasm)
-
basic_gates:
Dict
[str
,QasmGateStatement
] = {'CX': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'U': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>}
- qelib_gates = {'c3sqrtx': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'c3sx': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'c3x': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'c4x': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'ccx': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'ccz': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'ch': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'cp': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'crx': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'cry': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'crz': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'cs': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'csdg': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'cswap': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'csx': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'cu': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'cu1': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'cu3': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'cx': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'cy': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'cz': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'h': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'id': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'iswap': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'p': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'r': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'rx': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'ry': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'rz': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'rzz': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 's': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'sdg': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'swap': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'sx': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'sxdg': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 't': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'tdg': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'u': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'u1': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'u2': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'u3': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'x': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'y': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'z': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>}
- all_gates = {'CX': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'U': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'c3sqrtx': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'c3sx': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'c3x': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'c4x': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'ccx': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'ccz': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'ch': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'cp': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'crx': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'cry': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'crz': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'cs': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'csdg': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'cswap': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'csx': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'cu': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'cu1': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'cu3': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'cx': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'cy': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'cz': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'h': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'id': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'iswap': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'p': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'r': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'rx': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'ry': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'rz': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'rzz': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 's': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'sdg': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'swap': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'sx': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'sxdg': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 't': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'tdg': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'u': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'u1': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'u2': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'u3': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'x': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'y': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>, 'z': <qbraid.transpiler.cirq_qasm.qasm_parser.QasmGateStatement object>}
- tokens = ['FORMAT_SPEC', 'NUMBER', 'NATURAL_NUMBER', 'QELIBINC', 'ID', 'PI', 'QREG', 'CREG', 'MEASURE', 'ARROW']
- start = 'start'
- precedence = (('left', '+', '-'), ('left', '*', '/'), ('right', '^'))
- p_new_reg(p)[source]
new_reg : QREG ID ‘[‘ NATURAL_NUMBER ‘]’ ‘;’ | CREG ID ‘[‘ NATURAL_NUMBER ‘]’ ‘;’
-
basic_gates: