QXel.provider.braket.openqasm.interpreter module

class QXel.provider.braket.openqasm.interpreter.Interpreter(context=None, logger=None)

Bases: object

The interpreter is responsible for visiting the AST of an OpenQASM program, as created by the parser, and building a QXel.provider.braket.openqasm.circuit.Circuit to hand off to a simulator e.g. QXel.provider.braket.qxel_sv.QXelStateVector

The interpreter keeps track of all state using a ProgramContext object. The main entry point is build_circuit(), which returns the built circuit. An alternative entry poitn, run() returns the ProgramContext object, which can be used for debugging or other customizability.

build_circuit(source, inputs=None, is_file=False)

Interpret an OpenQASM program and build a Circuit IR.

run(source, inputs=None, is_file=False)

Interpret an OpenQASM program and return the program state

visit(node)
visit(node_list)
visit(node)
visit(node)
visit(node)
visit(node)
visit(node)
visit(node)
visit(node)
visit(node)
visit(node)
visit(node)
visit(node)
visit(node)
visit(node)
visit(node)
visit(node)
visit(node)
visit(node)
visit(node)
visit(node)
visit(node)
visit(node)
visit(node)
visit(node)
visit(node)
visit(node)
visit(node)
visit(node)
visit(node)
visit(node)
visit(node)
visit(node)
visit(node)
visit(node)

Generic visit function for an AST node

inline_gate_def_body(body)
handle_builtin_gate(gate_name, arguments, qubits, modifiers)

Add unitary operation to the circuit

handle_phase(phase, qubits=None)

Add quantum phase operation to the circuit