Skip to content

Commit eb66430

Browse files
committed
Fix errors on Travis CI
1 parent 08917d0 commit eb66430

File tree

2 files changed

+49
-45
lines changed

2 files changed

+49
-45
lines changed

projectq/libs/qasm/_parse_qasm_pyparsing.py

+37-35
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@
1919
from copy import deepcopy
2020
import operator as op
2121
from pyparsing import (Literal, Word, Group, Or, CharsNotIn, Optional,
22-
nestedExpr, Suppress, removeQuotes, Empty,
23-
cppStyleComment, cStyleComment, dblQuotedString, alphas,
24-
alphanums, pyparsing_common)
22+
OneOrMore, ZeroOrMore, nestedExpr, Suppress,
23+
removeQuotes, Empty, cppStyleComment, cStyleComment,
24+
dblQuotedString, alphas, alphanums, pyparsing_common)
2525

2626
from projectq.ops import All, Measure
2727

@@ -412,8 +412,8 @@ def __init__(self, s, loc, toks):
412412
self.qubits = [QubitProxy(qubit) for qubit in toks[1]]
413413
else:
414414
param_str = s[loc:s.find(';', loc)]
415-
self.params = param_str[param_str.find('(') +
416-
1:param_str.rfind(')')].split(',')
415+
self.params = param_str[param_str.find('(')
416+
+ 1:param_str.rfind(')')].split(',')
417417
self.qubits = [QubitProxy(qubit) for qubit in toks[2]]
418418

419419
def eval(self, eng):
@@ -567,8 +567,8 @@ class IfOp:
567567
logical_bin_op = Or(
568568
[greater, greater_equal, less, less_equal, equal, not_equal])
569569

570-
cond_expr = (CommonTokens.variable_expr.copy() + logical_bin_op +
571-
CharsNotIn('()'))
570+
cond_expr = (CommonTokens.variable_expr.copy() + logical_bin_op
571+
+ CharsNotIn('()'))
572572

573573
def __init__(self, if_str, loc, toks):
574574
"""
@@ -763,11 +763,12 @@ def __init__(self):
763763
# Variable declarations
764764

765765
# e.g. qubit[10] qr, qs / int[5] i, j
766-
variable_decl_const_bits = type_t + Group(cname + (comma + cname)[...])
766+
variable_decl_const_bits = type_t + Group(cname
767+
+ ZeroOrMore(comma + cname))
767768

768769
# e.g. qubit qr[10], qs[2] / int i[5], j[10]
769-
variable_decl_var_bits = var_type + Group(variable_expr +
770-
(comma + variable_expr)[...])
770+
variable_decl_var_bits = var_type + Group(
771+
variable_expr + ZeroOrMore(comma + variable_expr))
771772

772773
# e.g. int[10] i = 5;
773774
variable_decl_assign = type_t + cname + equal_sign + Group(expr)
@@ -781,11 +782,11 @@ def __init__(self):
781782
# ----------------------------------------------------------------------
782783
# Gate operations
783784

784-
gate_op_no_param = cname + Group(variable_expr +
785-
(comma + variable_expr)[...])
786-
gate_op_w_param = cname + Group(
787-
nestedExpr(ignoreExpr=comma)) + Group(variable_expr +
788-
(comma + variable_expr)[...])
785+
gate_op_no_param = cname + Group(variable_expr
786+
+ ZeroOrMore(comma + variable_expr))
787+
gate_op_w_param = cname + Group(nestedExpr(
788+
ignoreExpr=comma)) + Group(variable_expr
789+
+ ZeroOrMore(comma + variable_expr))
789790

790791
# ----------------------------------
791792
# Measure gate operations
@@ -810,7 +811,7 @@ def __init__(self):
810811

811812
# NB: not exactly 100% OpenQASM 3.0 conformant...
812813
if_expr_qasm3 = (Literal("if") + nestedExpr(ignoreExpr=comma) +
813-
(lbrace + Group(gate_op + end)[1, ...] + rbrace))
814+
(lbrace + OneOrMore(Group(gate_op + end)) + rbrace))
814815
if_expr = (if_expr_qasm2 ^ if_expr_qasm3).addParseAction(IfOp)
815816

816817
assign_op = (cname + equal_sign + Group(expr)).addParseAction(AssignOp)
@@ -829,30 +830,31 @@ def __init__(self):
829830

830831
param_decl = Group(param_decl_qasm2 ^ param_decl_qasm3)
831832

832-
qargs_list = Group(cname + (comma + cname)[...])
833+
qargs_list = Group(cname + ZeroOrMore(comma + cname))
833834

834-
gate_def_no_args = (lpar + rpar)[...] + Group(Empty()) + qargs_list
835-
gate_def_w_args = (lpar + Group(param_decl +
836-
(comma + param_decl)[...]) + rpar +
837-
qargs_list)
835+
gate_def_no_args = ZeroOrMore(lpar + rpar) + Group(
836+
Empty()) + qargs_list
837+
gate_def_w_args = (lpar
838+
+ Group(param_decl + ZeroOrMore(comma + param_decl))
839+
+ rpar + qargs_list)
838840
gate_def_expr = (Literal("gate") + cname +
839-
(gate_def_no_args ^ gate_def_w_args) + lbrace + Group(
840-
(gate_op + end)[...]) +
841-
rbrace).addParseAction(GateDefOp)
841+
(gate_def_no_args ^ gate_def_w_args) + lbrace
842+
+ Group(ZeroOrMore(gate_op + end))
843+
+ rbrace).addParseAction(GateDefOp)
842844

843845
# ----------------------------------
844846
# Opaque gate declarations operations
845847

846848
opaque_def_expr = (Literal("opaque") + cname +
847-
(gate_def_no_args ^ gate_def_w_args) +
848-
end).addParseAction(OpaqueDefOp)
849+
(gate_def_no_args ^ gate_def_w_args)
850+
+ end).addParseAction(OpaqueDefOp)
849851

850852
# ----------------------------------------------------------------------
851853
# Control related expressions (OpenQASM 3.0)
852854

853-
# control_var_type = Or([length_t, stretch_t + int_v[...]])
855+
# control_var_type = Or([length_t, stretch_t + ZeroOrMore(int_v)])
854856

855-
# lengthof_arg = Word(alphanums + '_+-*/%{}[]')[1, ...]
857+
# lengthof_arg = OneOrMore(Word(alphanums + '_+-*/%{}[]'))
856858
# lengthof_op = Literal("lengthof") + lpar + lengthof_arg + rpar
857859

858860
# units = Word(alphas)
@@ -864,16 +866,16 @@ def __init__(self):
864866
# control_variable_decl_statement = Group(
865867
# Or([control_variable_decl, control_variable_decl_assign]))
866868

867-
# control_func_arg = Word(alphanums + '_+-*/%')[1, ...]
869+
# control_func_arg = OneOrMore(Word(alphanums + '_+-*/%'))
868870
# control_func_op = Literal("rotary")
869871

870872
# rotary_op = (control_func_op + lpar + control_func_arg + rpar + lbra
871873
# + ((float_v + units) ^ control_func_arg) + rbra +
872-
# variable_expr + (comma + variable_expr)[...])
874+
# variable_expr + ZeroOrMore(comma + variable_expr))
873875

874-
# delay_arg = Word(alphanums + '_+-*/%')[1, ...]
876+
# delay_arg = OneOrMore(Word(alphanums + '_+-*/%'))
875877
# delay_op = Literal("delay") + lbra + delay_arg + rbra + Optional(
876-
# variable_expr + (comma + variable_expr)[...])
878+
# variable_expr + ZeroOrMore(comma + variable_expr))
877879

878880
# control_op = Group(Or([rotary_op, delay_op]))
879881

@@ -882,8 +884,8 @@ def __init__(self):
882884
header = (Suppress("OPENQASM") +
883885
(int_v ^ float_v).addParseAction(QASMVersionOp) + end)
884886

885-
include = (Suppress("include") + string_v.addParseAction(IncludeOp) +
886-
end)
887+
include = (Suppress("include") + string_v.addParseAction(IncludeOp)
888+
+ end)
887889

888890
statement = (
889891
(measure_op + end)
@@ -898,7 +900,7 @@ def __init__(self):
898900
# | (control_op + end).addParseAction(lambda toks: [])
899901
)
900902

901-
self.parser = header + include[...] + statement[...]
903+
self.parser = header + ZeroOrMore(include) + ZeroOrMore(statement)
902904
self.parser.ignore(cppStyleComment)
903905
self.parser.ignore(cStyleComment)
904906

projectq/libs/qasm/_pyparsing_expr.py

+12-10
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@
2020
from numbers import Number
2121
import operator
2222

23-
from pyparsing import (Literal, Word, Group, Forward, alphas, alphanums, Regex,
24-
CaselessKeyword, Suppress, delimitedList,
25-
pyparsing_common)
23+
from pyparsing import (Literal, Word, Group, Forward, ZeroOrMore, alphas,
24+
alphanums, Regex, CaselessKeyword, Suppress,
25+
delimitedList, pyparsing_common)
2626

2727
# ==============================================================================
2828

@@ -103,12 +103,12 @@ def insert_fn_argcount_tuple(toks):
103103
num_args = len(toks[0])
104104
toks.insert(0, (fn_name, num_args))
105105

106-
var_expr = (cname + (lbra + int_v + rbra)[...]).addParseAction(
106+
var_expr = (cname + ZeroOrMore(lbra + int_v + rbra)).addParseAction(
107107
self._eval_var_expr)
108108

109-
fn_call = (cname + lpar - Group(expr_list) +
110-
rpar).setParseAction(insert_fn_argcount_tuple)
111-
atom = (addop[...] +
109+
fn_call = (cname + lpar - Group(expr_list)
110+
+ rpar).setParseAction(insert_fn_argcount_tuple)
111+
atom = (ZeroOrMore(addop) +
112112
((fn_call | pi_const | e_const | var_expr | fnumber
113113
| cname).setParseAction(push_first)
114114
| Group(lpar + expr + rpar))).setParseAction(push_unary_minus)
@@ -118,9 +118,11 @@ def insert_fn_argcount_tuple(toks):
118118
# exponents, instead of left-to-right that is, 2^3^2 = 2^(3^2), not
119119
# (2^3)^2.
120120
factor = Forward()
121-
factor <<= atom + (expop + factor).setParseAction(push_first)[...]
122-
term = factor + (multop + factor).setParseAction(push_first)[...]
123-
expr <<= term + (addop + term).setParseAction(push_first)[...]
121+
factor <<= atom + ZeroOrMore(
122+
(expop + factor).setParseAction(push_first))
123+
term = factor + ZeroOrMore(
124+
(multop + factor).setParseAction(push_first))
125+
expr <<= term + ZeroOrMore((addop + term).setParseAction(push_first))
124126
self.bnf = expr
125127

126128
def parse(self, expr):

0 commit comments

Comments
 (0)