================================================================================ A gate definition and its calls ================================================================================ gate rot(t, u) a, b { rz(t) a; cx a, b; ry(u / 2) b; } rot(0.1, pi) q[0], q[1]; h q; cx q[0], r[1]; -------------------------------------------------------------------------------- (source_file (gate_definition (identifier) (gate_parameters (identifier) (identifier)) (identifier_list (identifier) (identifier)) (scope (gate_call (identifier) (argument_list (identifier)) (operand_list (indexed_identifier (identifier)))) (gate_call (identifier) (operand_list (indexed_identifier (identifier)) (indexed_identifier (identifier)))) (gate_call (identifier) (argument_list (binary_expression (identifier) (integer_literal))) (operand_list (indexed_identifier (identifier)))))) (gate_call (identifier) (argument_list (float_literal) (identifier)) (operand_list (indexed_identifier (identifier) (index (integer_literal))) (indexed_identifier (identifier) (index (integer_literal))))) (gate_call (identifier) (operand_list (indexed_identifier (identifier)))) (gate_call (identifier) (operand_list (indexed_identifier (identifier) (index (integer_literal))) (indexed_identifier (identifier) (index (integer_literal)))))) ================================================================================ Modifiers, the global phase and physical qubits ================================================================================ ctrl @ h q[0], q[1]; ctrl(2) @ x q[0], q[1], q[2]; negctrl @ ctrl @ z a, b, c; inv @ pow(2) @ s q[0]; gphase(-pi / 4); ctrl @ gphase(pi) q[0]; cx $0, $1; -------------------------------------------------------------------------------- (source_file (gate_call (gate_modifier) (identifier) (operand_list (indexed_identifier (identifier) (index (integer_literal))) (indexed_identifier (identifier) (index (integer_literal))))) (gate_call (gate_modifier (integer_literal)) (identifier) (operand_list (indexed_identifier (identifier) (index (integer_literal))) (indexed_identifier (identifier) (index (integer_literal))) (indexed_identifier (identifier) (index (integer_literal))))) (gate_call (gate_modifier) (gate_modifier) (identifier) (operand_list (indexed_identifier (identifier)) (indexed_identifier (identifier)) (indexed_identifier (identifier)))) (gate_call (gate_modifier) (gate_modifier (integer_literal)) (identifier) (operand_list (indexed_identifier (identifier) (index (integer_literal))))) (gphase_call (argument_list (binary_expression (unary_expression (identifier)) (integer_literal)))) (gphase_call (gate_modifier) (argument_list (identifier)) (operand_list (indexed_identifier (identifier) (index (integer_literal))))) (gate_call (identifier) (operand_list (hardware_qubit) (hardware_qubit)))) ================================================================================ OpenQASM 2 gates ================================================================================ gate majority a,b,c { cx c,b; cx c,a; ccx a,b,c; } opaque blackbox(t) x, y; U(pi/2,0,pi) q[0]; CX q[0],q[1]; -------------------------------------------------------------------------------- (source_file (gate_definition (identifier) (identifier_list (identifier) (identifier) (identifier)) (scope (gate_call (identifier) (operand_list (indexed_identifier (identifier)) (indexed_identifier (identifier)))) (gate_call (identifier) (operand_list (indexed_identifier (identifier)) (indexed_identifier (identifier)))) (gate_call (identifier) (operand_list (indexed_identifier (identifier)) (indexed_identifier (identifier)) (indexed_identifier (identifier)))))) (opaque_declaration (identifier) (gate_parameters (identifier)) (identifier_list (identifier) (identifier))) (gate_call (identifier) (argument_list (binary_expression (identifier) (integer_literal)) (integer_literal) (identifier)) (operand_list (indexed_identifier (identifier) (index (integer_literal))))) (gate_call (identifier) (operand_list (indexed_identifier (identifier) (index (integer_literal))) (indexed_identifier (identifier) (index (integer_literal))))))