qbraid.transpiler.cirq_qasm.QasmParser
- class QasmParser[source]
Parser for QASM strings. .. rubric:: Example
qasm = “OPENQASM 2.0; qreg q1[2]; CX q1[0], q1[1];” parsedQasm = QasmParser().parse(qasm)
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:
Attributes
all_gates
basic_gates
precedence
qelib_gates
start
tokens