diff --git a/pytest/test_grammar.py b/pytest/test_grammar.py index 1b8b9fca..75ff86bd 100644 --- a/pytest/test_grammar.py +++ b/pytest/test_grammar.py @@ -34,7 +34,7 @@ def test_grammar(): expect_lhs.add("async_with_as_stmt") expect_lhs.add("async_with_stmt") - unused_rhs = set(["list", "mkfunc", "mklambda", "unpack"]) + unused_rhs = set(["list", "mkfunc", "lambda_body", "unpack"]) expect_right_recursive = set([("designList", ("store", "DUP_TOP", "designList"))]) diff --git a/test/simple_source/bug36/05_36lambda.py b/test/simple_source/bug36/05_36lambda.py index c35cc3f8..3ed67f74 100644 --- a/test/simple_source/bug36/05_36lambda.py +++ b/test/simple_source/bug36/05_36lambda.py @@ -1,5 +1,5 @@ # From Python 3.6 hmac.py -# needed to change mklambda rule +# needed to change lambda_body rule def __init__(self, msg = None, digestmod = None): self.digest_cons = lambda d='': digestmod.new(d) diff --git a/test/simple_source/expression/10_lambda.py b/test/simple_source/expression/10_lambda.py index 9631fff5..cb736bef 100644 --- a/test/simple_source/expression/10_lambda.py +++ b/test/simple_source/expression/10_lambda.py @@ -1,12 +1,12 @@ # Bug in Python 3 # Python 3.3+ -# mklambda ::= LOAD_LAMBDA LOAD_CONST MAKE_FUNCTION_0 +# lambda_body ::= LOAD_LAMBDA LOAD_CONST MAKE_FUNCTION_0 # Python 3.0 .. 3.2 -# mklambda ::= LOAD_LAMBDA MAKE_FUNCTION_0 +# lambda_body ::= LOAD_LAMBDA MAKE_FUNCTION_0 -# _mklambda ::= mklambda -# expr ::= _mklambda +# _lambda_body ::= lambda_body +# expr ::= _lambda_body # kwarg ::= LOAD_CONST expr # exprlist ::= exprlist expr # call_function ::= expr kwarg CALL_FUNCTION_256 diff --git a/uncompyle6/parser.py b/uncompyle6/parser.py index 198364d6..574d6710 100644 --- a/uncompyle6/parser.py +++ b/uncompyle6/parser.py @@ -522,7 +522,7 @@ class PythonParser(GenericASTBuilder): expr ::= LOAD_FAST expr ::= LOAD_GLOBAL expr ::= LOAD_NAME - expr ::= _mklambda + expr ::= _lambda_body expr ::= and expr ::= bin_op expr ::= call @@ -566,7 +566,7 @@ class PythonParser(GenericASTBuilder): yield ::= expr YIELD_VALUE - _mklambda ::= mklambda + _lambda_body ::= lambda_body expr ::= if_exp diff --git a/uncompyle6/parsers/parse2.py b/uncompyle6/parsers/parse2.py index 617c60b8..0bb69dac 100644 --- a/uncompyle6/parsers/parse2.py +++ b/uncompyle6/parsers/parse2.py @@ -103,7 +103,7 @@ class Python2Parser(PythonParser): delete_subscript ::= expr expr DELETE_SUBSCR delete ::= expr DELETE_ATTR - _mklambda ::= load_closure mklambda + _lambda_body ::= load_closure lambda_body kwarg ::= LOAD_CONST expr kv3 ::= expr expr STORE_MAP @@ -540,7 +540,7 @@ class Python2Parser(PythonParser): elif opname_base == "MAKE_FUNCTION": if i > 0 and tokens[i - 1] == "LOAD_LAMBDA": self.addRule( - "mklambda ::= %s LOAD_LAMBDA %s" + "lambda_body ::= %s LOAD_LAMBDA %s" % ("pos_arg " * token.attr, opname), nop_func, ) @@ -549,7 +549,7 @@ class Python2Parser(PythonParser): # FIXME: use add_unique_rules to tidy this up. if i > 0 and tokens[i - 1] == "LOAD_LAMBDA": self.addRule( - "mklambda ::= %s load_closure LOAD_LAMBDA %s" + "lambda_body ::= %s load_closure LOAD_LAMBDA %s" % ("expr " * token.attr, opname), nop_func, ) diff --git a/uncompyle6/parsers/parse3.py b/uncompyle6/parsers/parse3.py index 75e7b4eb..7bdf17ff 100644 --- a/uncompyle6/parsers/parse3.py +++ b/uncompyle6/parsers/parse3.py @@ -1060,7 +1060,7 @@ class Python3Parser(PythonParser): else: j = 2 if self.is_pypy or (i >= j and tokens[i - j] == "LOAD_LAMBDA"): - rule_pat = "mklambda ::= %sload_closure LOAD_LAMBDA %%s%s" % ( + rule_pat = "lambda_body ::= %sload_closure LOAD_LAMBDA %%s%s" % ( "pos_arg " * args_pos, opname, ) @@ -1203,14 +1203,14 @@ class Python3Parser(PythonParser): stack_count = args_pos + args_kw + annotate_args if closure: if args_pos: - rule = "mklambda ::= %s%s%s%s" % ( + rule = "lambda_body ::= %s%s%s%s" % ( "expr " * stack_count, "load_closure " * closure, "BUILD_TUPLE_1 LOAD_LAMBDA LOAD_STR ", opname, ) else: - rule = "mklambda ::= %s%s%s" % ( + rule = "lambda_body ::= %s%s%s" % ( "load_closure " * closure, "LOAD_LAMBDA LOAD_STR ", opname, @@ -1218,7 +1218,7 @@ class Python3Parser(PythonParser): self.add_unique_rule(rule, opname, token.attr, customize) else: - rule = "mklambda ::= %sLOAD_LAMBDA LOAD_STR %s" % ( + rule = "lambda_body ::= %sLOAD_LAMBDA LOAD_STR %s" % ( ("expr " * stack_count), opname, ) @@ -1271,7 +1271,7 @@ class Python3Parser(PythonParser): ) if self.is_pypy or (i >= 2 and tokens[i - 2] == "LOAD_LAMBDA"): - rule_pat = "mklambda ::= %s%sLOAD_LAMBDA %%s%s" % ( + rule_pat = "lambda_body ::= %s%sLOAD_LAMBDA %%s%s" % ( ("pos_arg " * args_pos), ("kwarg " * args_kw), opname, @@ -1314,7 +1314,7 @@ class Python3Parser(PythonParser): # FIXME: Fold test into add_make_function_rule if self.is_pypy or (i >= j and tokens[i - j] == "LOAD_LAMBDA"): - rule_pat = "mklambda ::= %s%sLOAD_LAMBDA %%s%s" % ( + rule_pat = "lambda_body ::= %s%sLOAD_LAMBDA %%s%s" % ( ("pos_arg " * args_pos), ("kwarg " * args_kw), opname, diff --git a/uncompyle6/parsers/parse37.py b/uncompyle6/parsers/parse37.py index e1e7c300..3f375966 100644 --- a/uncompyle6/parsers/parse37.py +++ b/uncompyle6/parsers/parse37.py @@ -143,7 +143,7 @@ class Python37Parser(Python37BaseParser): expr ::= LOAD_GLOBAL expr ::= LOAD_NAME expr ::= LOAD_STR - expr ::= _mklambda + expr ::= _lambda_body expr ::= and expr ::= bin_op expr ::= call @@ -188,7 +188,7 @@ class Python37Parser(Python37BaseParser): yield ::= expr YIELD_VALUE - _mklambda ::= mklambda + _lambda_body ::= lambda_body expr ::= if_exp diff --git a/uncompyle6/parsers/parse37base.py b/uncompyle6/parsers/parse37base.py index 75ffb34f..bb062689 100644 --- a/uncompyle6/parsers/parse37base.py +++ b/uncompyle6/parsers/parse37base.py @@ -741,7 +741,7 @@ class Python37BaseParser(PythonParser): # FIXME: Fold test into add_make_function_rule j = 2 if is_pypy or (i >= j and tokens[i - j] == "LOAD_LAMBDA"): - rule_pat = "mklambda ::= %sload_closure LOAD_LAMBDA %%s%s" % ( + rule_pat = "lambda_body ::= %sload_closure LOAD_LAMBDA %%s%s" % ( "pos_arg " * args_pos, opname, ) @@ -815,14 +815,14 @@ class Python37BaseParser(PythonParser): stack_count = args_pos + args_kw + annotate_args if closure: if args_pos: - rule = "mklambda ::= %s%s%s%s" % ( + rule = "lambda_body ::= %s%s%s%s" % ( "expr " * stack_count, "load_closure " * closure, "BUILD_TUPLE_1 LOAD_LAMBDA LOAD_STR ", opname, ) else: - rule = "mklambda ::= %s%s%s" % ( + rule = "lambda_body ::= %s%s%s" % ( "load_closure " * closure, "LOAD_LAMBDA LOAD_STR ", opname, @@ -830,7 +830,7 @@ class Python37BaseParser(PythonParser): self.add_unique_rule(rule, opname, token.attr, customize) else: - rule = "mklambda ::= %sLOAD_LAMBDA LOAD_STR %s" % ( + rule = "lambda_body ::= %sLOAD_LAMBDA LOAD_STR %s" % ( ("expr " * stack_count), opname, ) @@ -875,7 +875,7 @@ class Python37BaseParser(PythonParser): ) if is_pypy or (i >= 2 and tokens[i - 2] == "LOAD_LAMBDA"): - rule_pat = "mklambda ::= %s%sLOAD_LAMBDA %%s%s" % ( + rule_pat = "lambda_body ::= %s%sLOAD_LAMBDA %%s%s" % ( ("pos_arg " * args_pos), ("kwarg " * args_kw), opname, @@ -910,7 +910,7 @@ class Python37BaseParser(PythonParser): # FIXME: Fold test into add_make_function_rule if is_pypy or (i >= j and tokens[i - j] == "LOAD_LAMBDA"): - rule_pat = "mklambda ::= %s%sLOAD_LAMBDA %%s%s" % ( + rule_pat = "lambda_body ::= %s%sLOAD_LAMBDA %%s%s" % ( ("pos_arg " * args_pos), ("kwarg " * args_kw), opname, diff --git a/uncompyle6/semantics/consts.py b/uncompyle6/semantics/consts.py index 93a805d5..98526ea6 100644 --- a/uncompyle6/semantics/consts.py +++ b/uncompyle6/semantics/consts.py @@ -50,8 +50,8 @@ PRECEDENCE = { "yield": 38, # Needs to be below named_expr "yield_from": 38, - "_mklambda": 30, - "mklambda": 30, + "_lambda_body": 30, + "lambda_body": 30, # lambda ... : lambda_body "if_exp": 28, # IfExp ( a if x else b) "if_exp_lambda": 28, # IfExp involving a lambda expression diff --git a/uncompyle6/semantics/customize37.py b/uncompyle6/semantics/customize37.py index 81d18782..27fa41b1 100644 --- a/uncompyle6/semantics/customize37.py +++ b/uncompyle6/semantics/customize37.py @@ -274,7 +274,7 @@ def customize_for_version37(self, version): and opname == "CALL_FUNCTION_1" or not re.match(r"\d", opname[-1]) ): - if node[0][0] == "_mklambda": + if node[0][0] == "_lambda_body": template = "(%c)(%p)" else: template = "%c(%p)" diff --git a/uncompyle6/semantics/helper.py b/uncompyle6/semantics/helper.py index 47b17324..e1faf37d 100644 --- a/uncompyle6/semantics/helper.py +++ b/uncompyle6/semantics/helper.py @@ -47,7 +47,7 @@ def find_all_globals(node, globs): # if isinstance(n, SyntaxTree): # # FIXME: do I need a caser for n.kind="mkfunc"? # if n.kind in ("if_exp_lambda", "return_lambda"): -# globs = find_globals(n, globs, mklambda_globals) +# globs = find_globals(n, globs, lambda_body_globals) # else: # globs = find_globals(n, globs, global_ops) # elif n.kind in frozenset(global_ops): diff --git a/uncompyle6/semantics/pysource.py b/uncompyle6/semantics/pysource.py index 7c509861..54930cdd 100644 --- a/uncompyle6/semantics/pysource.py +++ b/uncompyle6/semantics/pysource.py @@ -569,7 +569,7 @@ class SourceWalker(GenericASTTraversal, object): def n_expr(self, node): first_child = node[0] - if first_child == "_mklambda" and self.in_format_string: + if first_child == "_lambda_body" and self.in_format_string: p = -2 else: p = self.prec @@ -955,7 +955,7 @@ class SourceWalker(GenericASTTraversal, object): self.println(lines[-1], quote) self.prune() - def n_mklambda(self, node): + def n_lambda_body(self, node): self.make_function(node, is_lambda=True, code_node=node[-2]) self.prune() # stop recursing