mirror of https://github.com/openqasm/openqasm.git
214 lines
5.0 KiB
YAML
214 lines
5.0 KiB
YAML
# indent w/ 2 spaces
|
|
source: |
|
|
def test_sub1(int[5] i, qubit[2] q1, qreg q2[5]) -> int[10] {
|
|
int[10] result;
|
|
if (result == 2) return 1 + result;
|
|
return result;
|
|
}
|
|
def test_sub2(int[5] i, bit[2] b, creg c[3]) {
|
|
for int[5] j in {2, 3}
|
|
i += j;
|
|
return i+1;
|
|
}
|
|
def returns_a_measure(qubit q) {
|
|
return measure q;
|
|
}
|
|
reference: |
|
|
program
|
|
statementOrScope
|
|
statement
|
|
defStatement
|
|
def
|
|
test_sub1
|
|
(
|
|
argumentDefinitionList
|
|
argumentDefinition
|
|
scalarType
|
|
int
|
|
designator
|
|
[
|
|
expression
|
|
5
|
|
]
|
|
i
|
|
,
|
|
argumentDefinition
|
|
qubitType
|
|
qubit
|
|
designator
|
|
[
|
|
expression
|
|
2
|
|
]
|
|
q1
|
|
,
|
|
argumentDefinition
|
|
qreg
|
|
q2
|
|
designator
|
|
[
|
|
expression
|
|
5
|
|
]
|
|
)
|
|
returnSignature
|
|
->
|
|
scalarType
|
|
int
|
|
designator
|
|
[
|
|
expression
|
|
10
|
|
]
|
|
scope
|
|
{
|
|
statementOrScope
|
|
statement
|
|
classicalDeclarationStatement
|
|
scalarType
|
|
int
|
|
designator
|
|
[
|
|
expression
|
|
10
|
|
]
|
|
result
|
|
;
|
|
statementOrScope
|
|
statement
|
|
ifStatement
|
|
if
|
|
(
|
|
expression
|
|
expression
|
|
result
|
|
==
|
|
expression
|
|
2
|
|
)
|
|
statementOrScope
|
|
statement
|
|
returnStatement
|
|
return
|
|
expression
|
|
expression
|
|
1
|
|
+
|
|
expression
|
|
result
|
|
;
|
|
statementOrScope
|
|
statement
|
|
returnStatement
|
|
return
|
|
expression
|
|
result
|
|
;
|
|
}
|
|
statementOrScope
|
|
statement
|
|
defStatement
|
|
def
|
|
test_sub2
|
|
(
|
|
argumentDefinitionList
|
|
argumentDefinition
|
|
scalarType
|
|
int
|
|
designator
|
|
[
|
|
expression
|
|
5
|
|
]
|
|
i
|
|
,
|
|
argumentDefinition
|
|
scalarType
|
|
bit
|
|
designator
|
|
[
|
|
expression
|
|
2
|
|
]
|
|
b
|
|
,
|
|
argumentDefinition
|
|
creg
|
|
c
|
|
designator
|
|
[
|
|
expression
|
|
3
|
|
]
|
|
)
|
|
scope
|
|
{
|
|
statementOrScope
|
|
statement
|
|
forStatement
|
|
for
|
|
scalarType
|
|
int
|
|
designator
|
|
[
|
|
expression
|
|
5
|
|
]
|
|
j
|
|
in
|
|
setExpression
|
|
{
|
|
expression
|
|
2
|
|
,
|
|
expression
|
|
3
|
|
}
|
|
statementOrScope
|
|
statement
|
|
assignmentStatement
|
|
indexedIdentifier
|
|
i
|
|
+=
|
|
expression
|
|
j
|
|
;
|
|
statementOrScope
|
|
statement
|
|
returnStatement
|
|
return
|
|
expression
|
|
expression
|
|
i
|
|
+
|
|
expression
|
|
1
|
|
;
|
|
}
|
|
statementOrScope
|
|
statement
|
|
defStatement
|
|
def
|
|
returns_a_measure
|
|
(
|
|
argumentDefinitionList
|
|
argumentDefinition
|
|
qubitType
|
|
qubit
|
|
q
|
|
)
|
|
scope
|
|
{
|
|
statementOrScope
|
|
statement
|
|
returnStatement
|
|
return
|
|
measureExpression
|
|
measure
|
|
gateOperand
|
|
indexedIdentifier
|
|
q
|
|
;
|
|
}
|
|
<EOF>
|