From eab4328f1a4de03e527c746086f73c8a4d6f6b08 Mon Sep 17 00:00:00 2001 From: Jeremy Hylton Date: Mon, 17 Sep 2001 20:16:30 +0000 Subject: [PATCH] Fix calculation of hardest_arg. The argument properties are ordered from easiest to hardest. The harder the arg, the more complicated that code that must be generated to return it from getChildren() and/or getChildNodes(). The old calculation routine was bogus, because it always set hardest_arg to the hardness of the last argument. Now use max() to always set it to the hardness of the hardest argument. --- Tools/compiler/astgen.py | 6 +++--- Tools/compiler/compiler/astgen.py | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Tools/compiler/astgen.py b/Tools/compiler/astgen.py index 245eebd30bb..90201d31e35 100644 --- a/Tools/compiler/astgen.py +++ b/Tools/compiler/astgen.py @@ -71,15 +71,15 @@ class NodeInfo: if arg.endswith('*'): arg = self.argnames[i] = arg[:-1] d[arg] = P_OTHER - hardest_arg = P_OTHER + hardest_arg = max(hardest_arg, P_OTHER) elif arg.endswith('!'): arg = self.argnames[i] = arg[:-1] d[arg] = P_NESTED - hardest_arg = P_NESTED + hardest_arg = max(hardest_arg, P_NESTED) elif arg.endswith('&'): arg = self.argnames[i] = arg[:-1] d[arg] = P_NONE - hardest_arg = P_NONE + hardest_arg = max(hardest_arg, P_NONE) else: d[arg] = P_NODE self.hardest_arg = hardest_arg diff --git a/Tools/compiler/compiler/astgen.py b/Tools/compiler/compiler/astgen.py index 245eebd30bb..90201d31e35 100644 --- a/Tools/compiler/compiler/astgen.py +++ b/Tools/compiler/compiler/astgen.py @@ -71,15 +71,15 @@ class NodeInfo: if arg.endswith('*'): arg = self.argnames[i] = arg[:-1] d[arg] = P_OTHER - hardest_arg = P_OTHER + hardest_arg = max(hardest_arg, P_OTHER) elif arg.endswith('!'): arg = self.argnames[i] = arg[:-1] d[arg] = P_NESTED - hardest_arg = P_NESTED + hardest_arg = max(hardest_arg, P_NESTED) elif arg.endswith('&'): arg = self.argnames[i] = arg[:-1] d[arg] = P_NONE - hardest_arg = P_NONE + hardest_arg = max(hardest_arg, P_NONE) else: d[arg] = P_NODE self.hardest_arg = hardest_arg