Changeset 176

Show
Ignore:
Timestamp:
12/28/06 14:38:15 (2 years ago)
Author:
akhavr
Message:

ticket:370:

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • pybeast/trunk/Makefile

    r173 r176  
    3636pylint: 
    3737        pylint src 
    38         pylint dtest 
     38        pylint dtest --max-public-methods=32 
    3939        pylint ctest 
    4040 
  • pybeast/trunk/dtest/py2py.py

    r175 r176  
    111111        self.reformat_and_test('a = not a') 
    112112 
     113    def test_uadd(self): 
     114        'test UAdd expr' 
     115        self.reformat_and_test('a = +a') 
     116 
     117    def test_usub(self): 
     118        'test USub expr' 
     119        self.reformat_and_test('a = -a') 
     120 
    113121         
    114122if __name__ == '__main__': 
  • pybeast/trunk/src/py2py.py

    r175 r176  
    2727            upper_node = self.expr_ops_stack[-1] 
    2828            need_parens_now = need_parens(node.__class__.__name__, 
    29                                           upper_node.__class__.__name__
     29                                          upper_node
    3030        if need_parens_now: 
    3131            self.code += ' (' 
    3232             
    33         self.expr_ops_stack.append(node
     33        self.expr_ops_stack.append(node.__class__.__name__
    3434        walker.dispatch(node.left) 
    3535        self.code += ' %s' % code 
     
    4242    def visit_list(self, node, walker, code): 
    4343        'visit list join node' 
    44         self.expr_ops_stack.append(node
     44        self.expr_ops_stack.append(node.__class__.__name__
    4545        for subnode in node.getChildNodes(): 
    4646            walker.dispatch(subnode) 
     
    5252    def visit_unary(self, node, walker, code): 
    5353        'visit unary op node' 
    54         self.expr_ops_stack.append(node
     54        self.expr_ops_stack.append(node.__class__.__name__
    5555        self.code += ' %s' % code 
    5656        walker.dispatch(node.expr) 
     
    7070    def visit_name(self, node, *args): 
    7171        'visit Name node' 
    72         self.code += ' ' + str(node.name) 
     72        if self.expr_ops_stack[-1] not in ('UnaryAdd','UnarySub'): 
     73            self.code += ' ' 
     74        self.code += str(node.name) 
    7375 
    7476    def dump(self): 
     
    9496            'Or' : lambda n, w: self.visit_list(n, w, 'or'), 
    9597            'RightShift' : lambda n, w: self.visit_binop(n, w, '>>'), 
    96             'Sub' : lambda n, w: self.visit_binop(n, w, '-') 
     98            'Sub' : lambda n, w: self.visit_binop(n, w, '-'), 
     99            'UnaryAdd' : lambda n, w: self.visit_unary(n, w, '+'), 
     100            'UnarySub' : lambda n, w: self.visit_unary(n, w, '-'), 
    97101            } 
    98102        method = opmap.get(name, getattr(self, 'visit_'+name.lower(), default))