- Notifications
You must be signed in to change notification settings - Fork140
Description
Describe the feature you'd like
Right now,verbatim boxes are ignored altogether when translating OpenQASM toCircuit objects via theCircuit.from_ir method:
frombraket.circuitsimportCircuitoq="""OPENQASM 3.0;#pragma braket verbatimbox { 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 also expanding theOpenQASM parsing functionality in the default simulator package by adding methods for verbatim box handling to theinterpreter andprogram context.
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.