openqasm/source/grammar/tests/reference/assignment/assignment.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>