Source code for uniqc.transpiler.converter
"""OriginIR and OpenQASM2 format conversion utilities.
This module provides bidirectional conversion between OriginIR and
OpenQASM2 quantum circuit representations.
"""
__all__ = ["convert_oir_to_qasm", "convert_qasm_to_oir"]
from uniqc import OriginIR_BaseParser, OpenQASM2_BaseParser
from ._utils import IRConversionFailedException
[docs]
def convert_oir_to_qasm(originir_str: str) -> str:
"""
Convert OriginIR to OpenQASM2.
"""
try:
originir_parser = OriginIR_BaseParser()
originir_parser.parse(originir_str)
return originir_parser.to_qasm()
except Exception as e:
raise IRConversionFailedException(f"Failed to convert OriginIR to OpenQASM2: {e}")
[docs]
def convert_qasm_to_oir(qasm_str: str) -> str:
"""
Convert OpenQASM2 to OriginIR.
"""
try:
qasm_parser = OpenQASM2_BaseParser()
qasm_parser.parse(qasm_str)
return qasm_parser.to_originir()
except Exception as e:
raise IRConversionFailedException(f"Failed to convert OpenQASM2 to OriginIR: {e}")