qbraid.transpiler.conversions.cirq.QasmParser

class QasmParser[source]

Cirq Parser for QASM strings.

Example

qasm = “OPENQASM 2.0; qreg q1[2]; CX q1[0], q1[1];” parsedQasm = QasmParser().parse(qasm)

__init__()[source]

Methods

__init__()

debug_context(p)

find_column(p)

make_name(idx, reg)

p_args_multiple(p)

qargs : qarg ',' qargs

p_args_single(p)

qargs : qarg ';'

p_circuit_empty(p)

circuit : empty

p_circuit_gate_or_measurement(p)

circuit : circuit gate_op | circuit measurement

p_circuit_reg(p)

circuit : new_reg circuit

p_classical_arg_bit(p)

carg : ID '[' NATURAL_NUMBER ']'

p_classical_arg_register(p)

carg : ID

p_empty(p)

empty :

p_error(p)

p_expr_binary(p)

expr : expr '*' expr | expr '/' expr | expr '+' expr | expr '-' expr | expr '^' expr

p_expr_function_call(p)

expr : ID '(' expr ')'

p_expr_parens(p)

expr : '(' expr ')'

p_expr_term(p)

expr : term

p_expr_unary(p)

expr : '-' expr | '+' expr

p_format(p)

format : FORMAT_SPEC

p_gate_op_no_params(p)

gate_op : ID qargs

p_gate_op_with_params(p)

gate_op : ID '(' params ')' qargs

p_measurement(p)

measurement : MEASURE qarg ARROW carg ';'

p_new_reg(p)

new_reg : QREG ID '[' NATURAL_NUMBER ']' ';' | CREG ID '[' NATURAL_NUMBER ']' ';'

p_params_multiple(p)

params : expr ',' params

p_params_single(p)

params : expr

p_qasm_circuit(p)

qasm : qasm circuit

p_qasm_format_only(p)

qasm : format

p_qasm_include(p)

qasm : qasm QELIBINC

p_qasm_no_format_specified_error(p)

qasm : QELIBINC | circuit

p_quantum_arg_bit(p)

qarg : ID '[' NATURAL_NUMBER ']'

p_quantum_arg_register(p)

qarg : ID

p_start(p)

start : qasm

p_term(p)

term : NUMBER | NATURAL_NUMBER | PI

parse(qasm)

rtype:

Qasm

Attributes

all_gates

basic_gates

precedence

qelib_gates

start

tokens