amazon-braket-sdk-python
amazon-braket-sdk-python copied to clipboard
Support verbatim boxes in `from_ir`
Describe the feature you'd like
Right now, verbatim boxes are ignored altogether when translating OpenQASM to Circuit
objects via the Circuit.from_ir
method:
from braket.circuits import Circuit
oq = """
OPENQASM 3.0;
#pragma braket verbatim
box {
h $0;
cnot $0, $1;
}
"""
Circuit.from_ir(oq)
T : │ 0 │ 1 │
┌───┐
q0 : ─┤ H ├───●───
└───┘ │
┌─┴─┐
q1 : ───────┤ X ├─
└───┘
T : │ 0 │ 1 │
Verbatim boxes need to be supported for faithful translation of OpenQASM, particularly for programs with both verbatim and non-verbatim components.
Note: Implementing this feature will require expanding the OpenQASM parsing functionality in the default simulator package.
How would this feature be used? Please describe. As mentioned above, this would allow OpenQASM programs with verbatim boxes to be translated correctly.
Describe alternatives you've considered Entirely verbatim circuits, can be wrapped manually
verbatim_circuit = Circuit().add_verbatim_box(Circuit.from_ir(openqasm))
but this fails for programs with verbatim boxes in between non-verbatim instructions.