2020from numbers import Number
2121import 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