Base
Base classes for the QASM3 emitter using the EmitABC pattern.
Follows the same abstract-interpretation approach as the QASM2 emitter, using method tables for dispatch instead of long if-chains.
EmitQASM3Base
dataclass
EmitQASM3Base(
*, prefix: str = "", prefix_if_none: str = "var_"
)
Bases: EmitABC[EmitQASM3Frame, str | None], ABC
flowchart TD
bloqade.qasm3.emit.base.EmitQASM3Base[EmitQASM3Base]
click bloqade.qasm3.emit.base.EmitQASM3Base href "" "bloqade.qasm3.emit.base.EmitQASM3Base"
Base emitter for QASM3 string output via abstract interpretation.
format_float
staticmethod
format_float(value: float) -> str
Format a float for QASM3 output, using 'pi' for common values.
Source code in .venv/lib/python3.12/site-packages/bloqade/qasm3/emit/base.py
73 74 75 76 77 78 79 80 | |
EmitQASM3Frame
dataclass
EmitQASM3Frame(
body: list[str] = list(),
worklist: WorkList[Successor] = WorkList(),
block_ref: dict[Block, str | None] = dict(),
)
Bases: EmitFrame[str | None]
flowchart TD
bloqade.qasm3.emit.base.EmitQASM3Frame[EmitQASM3Frame]
click bloqade.qasm3.emit.base.EmitQASM3Frame href "" "bloqade.qasm3.emit.base.EmitQASM3Frame"
Frame for QASM3 emission.
Collects emitted lines (strings) and tracks SSA-to-string mappings.