mirror of https://github.com/openqasm/openqasm.git
187 lines
3.7 KiB
YAML
187 lines
3.7 KiB
YAML
# indent w/ 2 spaces
|
|
source: |
|
|
bit[2] a;
|
|
creg b[2];
|
|
qubit[5] q1;
|
|
qreg q2[7];
|
|
let q = q1 ++ q2;
|
|
let c = a[{0,1}] ++ b[1:2];
|
|
let qq = q1[{1,3,4}];
|
|
let qqq = qq ++ q2[1:2:6];
|
|
let d = c;
|
|
let e = d[1];
|
|
reference: |
|
|
program
|
|
statementOrScope
|
|
statement
|
|
classicalDeclarationStatement
|
|
scalarType
|
|
bit
|
|
designator
|
|
[
|
|
expression
|
|
2
|
|
]
|
|
a
|
|
;
|
|
statementOrScope
|
|
statement
|
|
oldStyleDeclarationStatement
|
|
creg
|
|
b
|
|
designator
|
|
[
|
|
expression
|
|
2
|
|
]
|
|
;
|
|
statementOrScope
|
|
statement
|
|
quantumDeclarationStatement
|
|
qubitType
|
|
qubit
|
|
designator
|
|
[
|
|
expression
|
|
5
|
|
]
|
|
q1
|
|
;
|
|
statementOrScope
|
|
statement
|
|
oldStyleDeclarationStatement
|
|
qreg
|
|
q2
|
|
designator
|
|
[
|
|
expression
|
|
7
|
|
]
|
|
;
|
|
statementOrScope
|
|
statement
|
|
aliasDeclarationStatement
|
|
let
|
|
q
|
|
=
|
|
aliasExpression
|
|
expression
|
|
q1
|
|
++
|
|
expression
|
|
q2
|
|
;
|
|
statementOrScope
|
|
statement
|
|
aliasDeclarationStatement
|
|
let
|
|
c
|
|
=
|
|
aliasExpression
|
|
expression
|
|
expression
|
|
a
|
|
indexOperator
|
|
[
|
|
setExpression
|
|
{
|
|
expression
|
|
0
|
|
,
|
|
expression
|
|
1
|
|
}
|
|
]
|
|
++
|
|
expression
|
|
expression
|
|
b
|
|
indexOperator
|
|
[
|
|
rangeExpression
|
|
expression
|
|
1
|
|
:
|
|
expression
|
|
2
|
|
]
|
|
;
|
|
statementOrScope
|
|
statement
|
|
aliasDeclarationStatement
|
|
let
|
|
qq
|
|
=
|
|
aliasExpression
|
|
expression
|
|
expression
|
|
q1
|
|
indexOperator
|
|
[
|
|
setExpression
|
|
{
|
|
expression
|
|
1
|
|
,
|
|
expression
|
|
3
|
|
,
|
|
expression
|
|
4
|
|
}
|
|
]
|
|
;
|
|
statementOrScope
|
|
statement
|
|
aliasDeclarationStatement
|
|
let
|
|
qqq
|
|
=
|
|
aliasExpression
|
|
expression
|
|
qq
|
|
++
|
|
expression
|
|
expression
|
|
q2
|
|
indexOperator
|
|
[
|
|
rangeExpression
|
|
expression
|
|
1
|
|
:
|
|
expression
|
|
2
|
|
:
|
|
expression
|
|
6
|
|
]
|
|
;
|
|
statementOrScope
|
|
statement
|
|
aliasDeclarationStatement
|
|
let
|
|
d
|
|
=
|
|
aliasExpression
|
|
expression
|
|
c
|
|
;
|
|
statementOrScope
|
|
statement
|
|
aliasDeclarationStatement
|
|
let
|
|
e
|
|
=
|
|
aliasExpression
|
|
expression
|
|
expression
|
|
d
|
|
indexOperator
|
|
[
|
|
expression
|
|
1
|
|
]
|
|
;
|
|
<EOF>
|