-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathQASM2.json
106 lines (106 loc) · 3.16 KB
/
QASM2.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
{
"<mainprog>": [["OPENQASM 2.0;\ninclude \"qelib1.inc\";\n", "<statements>"]],
"<statements>": [["<statement>", "\n", "<statements>"], []],
"<statement>": [
["<decl>"],
["<gatedecl>", " ", "<goplist>", " ", "}"],
["<gatedecl>", " ", "}"],
["opaque", " ", "<idlist>", ";"],
["opaque", " ", "<ID>", "(", ")", " ", "<idlist>", ";"],
["opaque", " ", "<ID>", "(", "<idlist>", ")", " ", "<idlist>", ";"],
["<qop>"],
["if", " ", "(", "<ID>", "==", "<INT>", ")", " ", "<qop>"],
["barrier", " ", "<anylist>", ";"]
],
"<decl>": [
["qreg", " ", "<ID>", "[", "<INT>", "]", ";"],
["creg", " ", "<ID>", "[", "<INT>", "]", ";"]
],
"<gatedecl>": [
["gate", " ", "<ID>", " ", "<idlist>", " ", "{"],
["gate", " ", "<ID>", "(", ")", " ", "<idlist>", " ", "{"],
["gate", " ", "<ID>", "(", "<idlist>", ")", " ", "<idlist>", " ", "{"]
],
"<goplist>": [["<uop_or_barrier>"]],
"<uop_or_barrier>": [
["<uop>"],
["<uop>", " ", "<uop_or_barrier>"],
["barrier", " ", "<idlist>", ";", " ", "<uop_or_barrier>"],
["barrier", " ", "<idlist>", ";"]
],
"<qop>": [
["<uop>"],
["measure", " ", "<argument>", "->", "<argument>", ";"],
["reset", " ", "<argument>", ";"]
],
"<uop>": [
["U", "(", "<explist>", ")", "<argument>", ";"],
["CX", " ", "<argument>", ",", "<argument>", ";"],
["<ID>", " ", "<anylist>", ";"],
["<ID>", "(", ")", " ", "<anylist>", ";"],
["<ID>", "(", "<explist>", ")", " ", "<anylist>", ";"]
],
"<anylist>": [["<idlist>"], ["<mixedlist>"]],
"<idlist>": [["<ID>", "<idlist_rest>"]],
"<idlist_rest>": [[",", " ", "<ID>", "<idlist_rest>"], []],
"<mixedlist>": [
["<mixedlist_option1>"],
["<mixedlist_option2>"],
["<mixedlist_option3>"]
],
"<mixedlist_option1>": [
["<id_with_int_list>", "<ID>"]
],
"<mixedlist_option2>": [
["<id_with_int_list>", "<ID>", "[", "<INT>", "]"]
],
"<mixedlist_option3>": [
["<id_list_with_comma>", "<ID>", "[", "<INT>", "]"]
],
"<id_with_int_list>": [
["<ID>", "[", "<INT>", "]", ",", "<id_with_int_list>"],
[]
],
"<id_list_with_comma>": [
["<ID>", ",", "<id_list_with_comma_inner>"],
[]
],
"<id_list_with_comma_inner>": [
["<ID>", ",", "<id_list_with_comma_inner>"],
["<ID>", "[", "<INT>", "]", ",", "<id_with_int_list>"]
],
"<argument>": [["<ID>"], ["<ID>", "[", "<INT>", "]"]],
"<explist>": [["<exp>", "<explist_rest>"]],
"<explist_rest>": [[",", "<exp>", "<explist_rest>"], []],
"<exp>": [
["<REAL>"],
["<INT>"],
["pi"],
["<ID>"],
["<exp>", "+", "<exp>"],
["<exp>", "-", "<exp>"],
["<exp>", "*", "<exp>"],
["<exp>", "/", "<exp>"],
["-", "<exp>"],
["<exp>", "^", "<exp>"],
["(", "<exp>", ")"],
["<unaryop>", "(", "<exp>", ")"]
],
"<unaryop>": [
["sin"],
["cos"],
["tan"],
["exp"],
["ln"],
["sqrt"]
],
"<ID>": [["id1"], ["id2"], ["id3"], ["id4"], ["id5"], ["id6"]],
"<INT>": [["-1"], ["0"], ["1"], ["2"], ["3"], ["4"], ["99"]],
"<REAL>": [
["<INT>", ".", "<INT>"],
["<INT>", ".", "<INT>", "e", "<INT>"],
["<INT>", ".", "<INT>", "E", "<INT>"],
["<INT>", "e", "<INT>"],
["<INT>", "E", "<INT>"]
]
}