Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
MattePalte committed Jan 31, 2025
1 parent 6706586 commit 5c5684b
Showing 1 changed file with 14 additions and 0 deletions.
14 changes: 14 additions & 0 deletions bqskit/ir/lang/qasm2/qasm2.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
from bqskit.ir.lang.language import Language
from bqskit.ir.lang.qasm2.parser import parse
from bqskit.ir.lang.qasm2.visitor import OPENQASMVisitor
from bqskit.ir.gates.measure import MeasurementPlaceholder

if TYPE_CHECKING:
from bqskit.ir.circuit import Circuit
Expand All @@ -22,7 +23,20 @@ def encode(self, circuit: Circuit) -> str:

source = "OPENQASM 2.0;\ninclude \"qelib1.inc\";\n"
source += f'qreg q[{circuit.num_qudits}];\n'
is_classical_register_present = False
for gate in circuit.gate_set:
# add at maximum one classical register definition per gate
if isinstance(gate, MeasurementPlaceholder):
if is_classical_register_present:
# skip all subsequent classical register definitions
continue

if isinstance(gate, MeasurementPlaceholder):
is_classical_register_present = True

print(gate)
print("Gate definition:")
print(gate.get_qasm_gate_def())
source += gate.get_qasm_gate_def()

for op in circuit:
Expand Down

0 comments on commit 5c5684b

Please sign in to comment.