mirror of https://github.com/openqasm/openqasm.git
182 lines
3.6 KiB
YAML
182 lines
3.6 KiB
YAML
# indent w/ 2 spaces
|
|
source: |
|
|
bit[2] a;
|
|
creg b[2];
|
|
qubit[3] q;
|
|
int[10] x = 12;
|
|
a[0] = b[1];
|
|
x += int[10](a[1]);
|
|
measure q[1] -> a[0];
|
|
a = measure q[1:2];
|
|
measure q[0];
|
|
b = a == 0;
|
|
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
|
|
3
|
|
]
|
|
q
|
|
;
|
|
statementOrScope
|
|
statement
|
|
classicalDeclarationStatement
|
|
scalarType
|
|
int
|
|
designator
|
|
[
|
|
expression
|
|
10
|
|
]
|
|
x
|
|
=
|
|
declarationExpression
|
|
expression
|
|
12
|
|
;
|
|
statementOrScope
|
|
statement
|
|
assignmentStatement
|
|
indexedIdentifier
|
|
a
|
|
indexOperator
|
|
[
|
|
expression
|
|
0
|
|
]
|
|
=
|
|
expression
|
|
expression
|
|
b
|
|
indexOperator
|
|
[
|
|
expression
|
|
1
|
|
]
|
|
;
|
|
statementOrScope
|
|
statement
|
|
assignmentStatement
|
|
indexedIdentifier
|
|
x
|
|
+=
|
|
expression
|
|
scalarType
|
|
int
|
|
designator
|
|
[
|
|
expression
|
|
10
|
|
]
|
|
(
|
|
expression
|
|
expression
|
|
a
|
|
indexOperator
|
|
[
|
|
expression
|
|
1
|
|
]
|
|
)
|
|
;
|
|
statementOrScope
|
|
statement
|
|
measureArrowAssignmentStatement
|
|
measureExpression
|
|
measure
|
|
gateOperand
|
|
indexedIdentifier
|
|
q
|
|
indexOperator
|
|
[
|
|
expression
|
|
1
|
|
]
|
|
->
|
|
indexedIdentifier
|
|
a
|
|
indexOperator
|
|
[
|
|
expression
|
|
0
|
|
]
|
|
;
|
|
statementOrScope
|
|
statement
|
|
assignmentStatement
|
|
indexedIdentifier
|
|
a
|
|
=
|
|
measureExpression
|
|
measure
|
|
gateOperand
|
|
indexedIdentifier
|
|
q
|
|
indexOperator
|
|
[
|
|
rangeExpression
|
|
expression
|
|
1
|
|
:
|
|
expression
|
|
2
|
|
]
|
|
;
|
|
statementOrScope
|
|
statement
|
|
measureArrowAssignmentStatement
|
|
measureExpression
|
|
measure
|
|
gateOperand
|
|
indexedIdentifier
|
|
q
|
|
indexOperator
|
|
[
|
|
expression
|
|
0
|
|
]
|
|
;
|
|
statementOrScope
|
|
statement
|
|
assignmentStatement
|
|
indexedIdentifier
|
|
b
|
|
=
|
|
expression
|
|
expression
|
|
a
|
|
==
|
|
expression
|
|
0
|
|
;
|
|
<EOF>
|