From: Finn B. <bc...@us...> - 2001-12-07 13:01:30
|
Update of /cvsroot/jython/jython/Tools/jythonc In directory usw-pr-cvs1:/tmp/cvs-serv13968 Modified Files: BaseEvaluator.py PythonVisitor.py Log Message: Fix for "[ #489836 ] Private names is not mangled" Several names are now passed through the getName() method which will perform the mangling. Index: BaseEvaluator.py =================================================================== RCS file: /cvsroot/jython/jython/Tools/jythonc/BaseEvaluator.py,v retrieving revision 2.14 retrieving revision 2.15 diff -C2 -d -r2.14 -r2.15 *** BaseEvaluator.py 2001/11/26 15:21:08 2.14 --- BaseEvaluator.py 2001/12/07 13:01:24 2.15 *************** *** 27,32 **** self.lineno = lineno ! def getName(self, name): ! return self.visitor.getName(name) def visit(self, node): --- 27,32 ---- self.lineno = lineno ! def getName(self, name, fast_locals=0): ! return self.visitor.getName(name, fast_locals) def visit(self, node): *************** *** 63,67 **** def delete(self, node): if node.id == JJTNAME: ! return self.del_name(node.getInfo()) elif node.id == JJTLIST or node.id == JJTTUPLE: return self.del_list(nodeToList(node)) --- 63,67 ---- def delete(self, node): if node.id == JJTNAME: ! return self.del_name(self.getName(node, self.frame.fast_locals)) elif node.id == JJTLIST or node.id == JJTTUPLE: return self.del_list(nodeToList(node)) *************** *** 71,75 **** elif node.id == JJTDOT_OP: return self.del_attribute(node.getChild(0), ! node.getChild(1).getInfo()) else: raise TypeError, 'help, fancy lhs: %s' % node --- 71,75 ---- elif node.id == JJTDOT_OP: return self.del_attribute(node.getChild(0), ! self.getName(node.getChild(1))) else: raise TypeError, 'help, fancy lhs: %s' % node *************** *** 89,93 **** def set(self, node, value): if node.id == JJTNAME: ! return self.set_name(node.getInfo(), value) elif node.id == JJTLIST or node.id == JJTFPLIST or node.id == JJTTUPLE: return self.set_list(nodeToList(node), value) --- 89,94 ---- def set(self, node, value): if node.id == JJTNAME: ! return self.set_name(self.getName(node, self.frame.fast_locals), ! value) elif node.id == JJTLIST or node.id == JJTFPLIST or node.id == JJTTUPLE: return self.set_list(nodeToList(node), value) *************** *** 97,101 **** elif node.id == JJTDOT_OP: return self.set_attribute(node.getChild(0), ! node.getChild(1).getInfo(), value) else: raise TypeError, 'help, fancy lhs: %s' % node --- 98,102 ---- elif node.id == JJTDOT_OP: return self.set_attribute(node.getChild(0), ! self.getName(node.getChild(1)), value) else: raise TypeError, 'help, fancy lhs: %s' % node Index: PythonVisitor.py =================================================================== RCS file: /cvsroot/jython/jython/Tools/jythonc/PythonVisitor.py,v retrieving revision 2.9 retrieving revision 2.10 diff -C2 -d -r2.9 -r2.10 *** PythonVisitor.py 2001/11/26 15:21:08 2.9 --- PythonVisitor.py 2001/12/07 13:01:24 2.10 *************** *** 50,57 **** self.walker = walker ! def getName(self, node): if not node.id == JJTNAME: return None ! return node.getInfo() def walk(self, node): --- 50,64 ---- self.walker = walker ! # The fast_locals arg is supplied when this method is used for ! # names in local scope. ! def getName(self, node, fast_locals=0): if not node.id == JJTNAME: return None ! s = node.getInfo() ! if fast_locals: ! return s ! if s[:2] == '__' and s[-2:] != '__' and self.walker.className: ! s = "_%s%s" % (self.walker.className, s) ! return s def walk(self, node): *************** *** 250,254 **** def Name(self, node): #self.startnode(node) ! return self.walker.name_const(node.getInfo()) def Int(self, node): --- 257,262 ---- def Name(self, node): #self.startnode(node) ! return self.walker.name_const( ! self.getName(node, self.walker.frame.fast_locals)) def Int(self, node): *************** *** 324,328 **** #self.startnode(node) obj = node.getChild(0) ! name = node.getChild(1).getInfo() return self.walker.get_attribute(obj, name) --- 332,336 ---- #self.startnode(node) obj = node.getChild(0) ! name = self.getName(node.getChild(1)) return self.walker.get_attribute(obj, name) *************** *** 368,372 **** if callee.id == JJTDOT_OP and kwargs is None and starargs is None: object = callee.getChild(0) ! name = callee.getChild(1).getInfo() return self.walker.invoke(object, name, args, keyargs) if kwargs or starargs: --- 376,380 ---- if callee.id == JJTDOT_OP and kwargs is None and starargs is None: object = callee.getChild(0) ! name = self.getName(callee.getChild(1)) return self.walker.invoke(object, name, args, keyargs) if kwargs or starargs: *************** *** 479,483 **** self.startnode(node) ! funcname = node.getChild(0).getInfo() Body = node.getChild(node.numChildren-1) --- 487,491 ---- self.startnode(node) ! funcname = self.getName(node.getChild(0)) Body = node.getChild(node.numChildren-1) *************** *** 497,501 **** def classdef(self, node): self.startnode(node) ! name = node.getChild(0).getInfo() n = node.numChildren --- 505,509 ---- def classdef(self, node): self.startnode(node) ! name = self.getName(node.getChild(0)) n = node.numChildren |