Hi!
I'm still working on bug:
http://python.org/sf/1720241
First thing I've found is that `compile` works OK, but `compiler.parse` not.
And I feel that It's bug in python, or python port, because I'm getting
Bus error
on some stage when I'm tracing execution and trying to backtrace. Also
`parser.expr`
passes ok, and error raises in Transformer class.
I've attached part of the debugger session, and script I use.
Any hints how to debug it further?
--
Paul.
(Pdb) bt
/usr/local/lib/python2.5/threading.py(460)__bootstrap()
-> self.run()
/usr/local/lib/python2.5/threading.py(440)run()
-> self.__target(*self.__args, **self.__kwargs)
/tmp/test1.py(9)test()
-> print Transformer().compile_node(b)
/usr/local/lib/python2.5/compiler/transformer.py(160)compile_node()
-> return self.eval_input(node[1:])
/usr/local/lib/python2.5/compiler/transformer.py(195)eval_input()
-> return Expression(self.com_node(nodelist[0]))
/usr/local/lib/python2.5/compiler/transformer.py(792)com_node()
-> return self._dispatch[node[0]](node[1:])
/usr/local/lib/python2.5/compiler/transformer.py(567)testlist()
-> return self.com_binary(Tuple, nodelist)
/usr/local/lib/python2.5/compiler/transformer.py(1065)com_binary()
-> return self.lookup_node(n)(n[1:])
/usr/local/lib/python2.5/compiler/transformer.py(583)test()
-> then = self.com_node(nodelist[0])
/usr/local/lib/python2.5/compiler/transformer.py(792)com_node()
-> return self._dispatch[node[0]](node[1:])
/usr/local/lib/python2.5/compiler/transformer.py(597)or_test()
-> return self.com_binary(Or, nodelist)
/usr/local/lib/python2.5/compiler/transformer.py(1065)com_binary()
-> return self.lookup_node(n)(n[1:])
/usr/local/lib/python2.5/compiler/transformer.py(602)and_test()
-> return self.com_binary(And, nodelist)
/usr/local/lib/python2.5/compiler/transformer.py(1065)com_binary()
-> return self.lookup_node(n)(n[1:])
/usr/local/lib/python2.5/compiler/transformer.py(606)not_test()
-> result = self.com_node(nodelist[-1])
/usr/local/lib/python2.5/compiler/transformer.py(792)com_node()
-> return self._dispatch[node[0]](node[1:])
/usr/local/lib/python2.5/compiler/transformer.py(613)comparison()
-> node = self.com_node(nodelist[0])
/usr/local/lib/python2.5/compiler/transformer.py(792)com_node()
-> return self._dispatch[node[0]](node[1:])
/usr/local/lib/python2.5/compiler/transformer.py(646)expr()
-> return self.com_binary(Bitor, nodelist)
/usr/local/lib/python2.5/compiler/transformer.py(1065)com_binary()
-> return self.lookup_node(n)(n[1:])
/usr/local/lib/python2.5/compiler/transformer.py(650)xor_expr()
-> return self.com_binary(Bitxor, nodelist)
/usr/local/lib/python2.5/compiler/transformer.py(1065)com_binary()
-> return self.lookup_node(n)(n[1:])
/usr/local/lib/python2.5/compiler/transformer.py(654)and_expr()
-> return self.com_binary(Bitand, nodelist)
/usr/local/lib/python2.5/compiler/transformer.py(1065)com_binary()
-> return self.lookup_node(n)(n[1:])
/usr/local/lib/python2.5/compiler/transformer.py(658)shift_expr()
-> node = self.com_node(nodelist[0])
/usr/local/lib/python2.5/compiler/transformer.py(792)com_node()
-> return self._dispatch[node[0]](node[1:])
/usr/local/lib/python2.5/compiler/transformer.py(670)arith_expr()
-> node = self.com_node(nodelist[0])
/usr/local/lib/python2.5/compiler/transformer.py(792)com_node()
-> return self._dispatch[node[0]](node[1:])
/usr/local/lib/python2.5/compiler/transformer.py(682)term()
-> node = self.com_node(nodelist[0])
/usr/local/lib/python2.5/compiler/transformer.py(792)com_node()
-> return self._dispatch[node[0]](node[1:])
/usr/local/lib/python2.5/compiler/transformer.py(702)factor()
-> node = self.lookup_node(nodelist[-1])(nodelist[-1][1:])
/usr/local/lib/python2.5/compiler/transformer.py(714)power()
-> node = self.com_node(nodelist[0])
/usr/local/lib/python2.5/compiler/transformer.py(792)com_node()
-> return self._dispatch[node[0]](node[1:])
/usr/local/lib/python2.5/compiler/transformer.py(726)atom()
-> return self._atom_dispatch[nodelist[0][0]](nodelist)
/usr/local/lib/python2.5/compiler/transformer.py(731)atom_lpar()
-> return self.com_node(nodelist[1])
/usr/local/lib/python2.5/compiler/transformer.py(792)com_node()
-> return self._dispatch[node[0]](node[1:])
/usr/local/lib/python2.5/compiler/transformer.py(577)testlist_gexp()
-> return self.testlist(nodelist)
/usr/local/lib/python2.5/compiler/transformer.py(567)testlist()
-> return self.com_binary(Tuple, nodelist)
/usr/local/lib/python2.5/compiler/transformer.py(1065)com_binary()
-> return self.lookup_node(n)(n[1:])
/usr/local/lib/python2.5/compiler/transformer.py(583)test()
-> then = self.com_node(nodelist[0])
/usr/local/lib/python2.5/compiler/transformer.py(792)com_node()
-> return self._dispatch[node[0]](node[1:])
/usr/local/lib/python2.5/compiler/transformer.py(597)or_test()
-> return self.com_binary(Or, nodelist)
/usr/local/lib/python2.5/compiler/transformer.py(1065)com_binary()
-> return self.lookup_node(n)(n[1:])
/usr/local/lib/python2.5/compiler/transformer.py(602)and_test()
-> return self.com_binary(And, nodelist)
/usr/local/lib/python2.5/compiler/transformer.py(1065)com_binary()
-> return self.lookup_node(n)(n[1:])
/usr/local/lib/python2.5/compiler/transformer.py(606)not_test()
-> result = self.com_node(nodelist[-1])
/usr/local/lib/python2.5/compiler/transformer.py(792)com_node()
-> return self._dispatch[node[0]](node[1:])
/usr/local/lib/python2.5/compiler/transformer.py(613)comparison()
-> node = self.com_node(nodelist[0])
/usr/local/lib/python2.5/compiler/transformer.py(792)com_node()
-> return self._dispatch[node[0]](node[1:])
/usr/local/lib/python2.5/compiler/transformer.py(646)expr()
-> return self.com_binary(Bitor, nodelist)
/usr/local/lib/python2.5/compiler/transformer.py(1065)com_binary()
-> return self.lookup_node(n)(n[1:])
/usr/local/lib/python2.5/compiler/transformer.py(650)xor_expr()
-> return self.com_binary(Bitxor, nodelist)
/usr/local/lib/python2.5/compiler/transformer.py(1065)com_binary()
-> return self.lookup_node(n)(n[1:])
/usr/local/lib/python2.5/compiler/transformer.py(654)and_expr()
-> return self.com_binary(Bitand, nodelist)
/usr/local/lib/python2.5/compiler/transformer.py(1065)com_binary()
-> return self.lookup_node(n)(n[1:])
/usr/local/lib/python2.5/compiler/transformer.py(658)shift_expr()
-> node = self.com_node(nodelist[0])
/usr/local/lib/python2.5/compiler/transformer.py(792)com_node()
-> return self._dispatch[node[0]](node[1:])
/usr/local/lib/python2.5/compiler/transformer.py(670)arith_expr()
-> node = self.com_node(nodelist[0])
/usr/local/lib/python2.5/compiler/transformer.py(792)com_node()
-> return self._dispatch[node[0]](node[1:])
/usr/local/lib/python2.5/compiler/transformer.py(682)term()
-> node = self.com_node(nodelist[0])
/usr/local/lib/python2.5/compiler/transformer.py(792)com_node()
-> return self._dispatch[node[0]](node[1:])
/usr/local/lib/python2.5/compiler/transformer.py(702)factor()
-> node = self.lookup_node(nodelist[-1])(nodelist[-1][1:])
/usr/local/lib/python2.5/compiler/transformer.py(714)power()
-> node = self.com_node(nodelist[0])
/usr/local/lib/python2.5/compiler/transformer.py(792)com_node()
-> return self._dispatch[node[0]](node[1:])
/usr/local/lib/python2.5/compiler/transformer.py(726)atom()
-> return self._atom_dispatch[nodelist[0][0]](nodelist)
/usr/local/lib/python2.5/compiler/transformer.py(731)atom_lpar()
-> return self.com_node(nodelist[1])
/usr/local/lib/python2.5/compiler/transformer.py(792)com_node()
-> return self._dispatch[node[0]](node[1:])
/usr/local/lib/python2.5/compiler/transformer.py(577)testlist_gexp()
-> return self.testlist(nodelist)
/usr/local/lib/python2.5/compiler/transformer.py(567)testlist()
-> return self.com_binary(Tuple, nodelist)
/usr/local/lib/python2.5/compiler/transformer.py(1065)com_binary()
-> return self.lookup_node(n)(n[1:])
/usr/local/lib/python2.5/compiler/transformer.py(583)test()
-> then = self.com_node(nodelist[0])
/usr/local/lib/python2.5/compiler/transformer.py(792)com_node()
-> return self._dispatch[node[0]](node[1:])
/usr/local/lib/python2.5/compiler/transformer.py(597)or_test()
-> return self.com_binary(Or, nodelist)
/usr/local/lib/python2.5/compiler/transformer.py(1065)com_binary()
-> return self.lookup_node(n)(n[1:])
/usr/local/lib/python2.5/compiler/transformer.py(602)and_test()
-> return self.com_binary(And, nodelist)
/usr/local/lib/python2.5/compiler/transformer.py(1065)com_binary()
-> return self.lookup_node(n)(n[1:])
/usr/local/lib/python2.5/compiler/transformer.py(606)not_test()
-> result = self.com_node(nodelist[-1])
/usr/local/lib/python2.5/compiler/transformer.py(792)com_node()
-> return self._dispatch[node[0]](node[1:])
/usr/local/lib/python2.5/compiler/transformer.py(613)comparison()
-> node = self.com_node(nodelist[0])
/usr/local/lib/python2.5/compiler/transformer.py(792)com_node()
-> return self._dispatch[node[0]](node[1:])
/usr/local/lib/python2.5/compiler/transformer.py(646)expr()
-> return self.com_binary(Bitor, nodelist)
/usr/local/lib/python2.5/compiler/transformer.py(1065)com_binary()
-> return self.lookup_node(n)(n[1:])
/usr/local/lib/python2.5/compiler/transformer.py(650)xor_expr()
-> return self.com_binary(Bitxor, nodelist)
/usr/local/lib/python2.5/compiler/transformer.py(1065)com_binary()
-> return self.lookup_node(n)(n[1:])
/usr/local/lib/python2.5/compiler/transformer.py(654)and_expr()
-> return self.com_binary(Bitand, nodelist)
/usr/local/lib/python2.5/compiler/transformer.py(1065)com_binary()
-> return self.lookup_node(n)(n[1:])
/usr/local/lib/python2.5/compiler/transformer.py(658)shift_expr()
-> node = self.com_node(nodelist[0])
/usr/local/lib/python2.5/compiler/transformer.py(792)com_node()
-> return self._dispatch[node[0]](node[1:])
/usr/local/lib/python2.5/compiler/transformer.py(670)arith_expr()
-> node = self.com_node(nodelist[0])
/usr/local/lib/python2.5/compiler/transformer.py(792)com_node()
-> return self._dispatch[node[0]](node[1:])
/usr/local/lib/python2.5/compiler/transformer.py(682)term()
-> node = self.com_node(nodelist[0])
/usr/local/lib/python2.5/compiler/transformer.py(792)com_node()
-> return self._dispatch[node[0]](node[1:])
/usr/local/lib/python2.5/compiler/transformer.py(702)factor()
-> node = self.lookup_node(nodelist[-1])(nodelist[-1][1:])
/usr/local/lib/python2.5/compiler/transformer.py(714)power()
-> node = self.com_node(nodelist[0])
/usr/local/lib/python2.5/compiler/transformer.py(792)com_node()
-> return self._dispatch[node[0]](node[1:])
/usr/local/lib/python2.5/compiler/transformer.py(726)atom()
-> return self._atom_dispatch[nodelist[0][0]](nodelist)
/usr/local/lib/python2.5/compiler/transformer.py(731)atom_lpar()
-> return self.com_node(nodelist[1])
/usr/local/lib/python2.5/compiler/transformer.py(792)com_node()
-> return self._dispatch[node[0]](node[1:])
/usr/local/lib/python2.5/compiler/transformer.py(577)testlist_gexp()
-> return self.testlist(nodelist)
/usr/local/lib/python2.5/compiler/transformer.py(567)testlist()
-> return self.com_binary(Tuple, nodelist)
/usr/local/lib/python2.5/compiler/transformer.py(1065)com_binary()
-> return self.lookup_node(n)(n[1:])
> /usr/local/lib/python2.5/compiler/transformer.py(579)test()
-> def test(self, nodelist):
(Pdb) n
> /usr/local/lib/python2.5/compiler/transformer.py(581)test()
-> if len(nodelist) == 1 and nodelist[0][0] == symbol.lambdef:
(Pdb) n
> /usr/local/lib/python2.5/compiler/transformer.py(583)test()
-> then = self.com_node(nodelist[0])
(Pdb) s
--Call--
> /usr/local/lib/python2.5/compiler/transformer.py(787)com_node()
-> def com_node(self, node):
(Pdb) n
> /usr/local/lib/python2.5/compiler/transformer.py(792)com_node()
-> return self._dispatch[node[0]](node[1:])
(Pdb) s
--Call--
> /usr/local/lib/python2.5/compiler/transformer.py(593)or_test()
-> def or_test(self, nodelist):
(Pdb) n
> /usr/local/lib/python2.5/compiler/transformer.py(595)or_test()
-> if len(nodelist) == 1 and nodelist[0][0] == symbol.lambdef:
(Pdb) n
> /usr/local/lib/python2.5/compiler/transformer.py(597)or_test()
-> return self.com_binary(Or, nodelist)
(Pdb) s
--Call--
> /usr/local/lib/python2.5/compiler/transformer.py(1060)com_binary()
-> def com_binary(self, constructor, nodelist):
(Pdb) bt(Pdb) bt
/usr/local/lib/python2.5/threading.py(460)__bootstrap()
-> self.run()
/usr/local/lib/python2.5/threading.py(440)run()
-> self.__target(*self.__args, **self.__kwargs)
/tmp/test1.py(9)test()
-> print Transformer().compile_node(b)
/usr/local/lib/python2.5/compiler/transformer.py(160)compile_node()
-> return self.eval_input(node[1:])
/usr/local/lib/python2.5/compiler/transformer.py(195)eval_input()
-> return Expression(self.com_node(nodelist[0]))
/usr/local/lib/python2.5/compiler/transformer.py(792)com_node()
-> return self._dispatch[node[0]](node[1:])
/usr/local/lib/python2.5/compiler/transformer.py(567)testlist()
-> return self.com_binary(Tuple, nodelist)
/usr/local/lib/python2.5/compiler/transformer.py(1065)com_binary()
-> return self.lookup_node(n)(n[1:])
/usr/local/lib/python2.5/compiler/transformer.py(583)test()
-> then = self.com_node(nodelist[0])
/usr/local/lib/python2.5/compiler/transformer.py(792)com_node()
-> return self._dispatch[node[0]](node[1:])
/usr/local/lib/python2.5/compiler/transformer.py(597)or_test()
-> return self.com_binary(Or, nodelist)
/usr/local/lib/python2.5/compiler/transformer.py(1065)com_binary()
-> return self.lookup_node(n)(n[1:])
/usr/local/lib/python2.5/compiler/transformer.py(602)and_test()
-> return self.com_binary(And, nodelist)
/usr/local/lib/python2.5/compiler/transformer.py(1065)com_binary()
-> return self.lookup_node(n)(n[1:])
/usr/local/lib/python2.5/compiler/transformer.py(606)not_test()
-> result = self.com_node(nodelist[-1])
/usr/local/lib/python2.5/compiler/transformer.py(792)com_node()
-> return self._dispatch[node[0]](node[1:])
/usr/local/lib/python2.5/compiler/transformer.py(613)comparison()
-> node = self.com_node(nodelist[0])
/usr/local/lib/python2.5/compiler/transformer.py(792)com_node()
-> return self._dispatch[node[0]](node[1:])
/usr/local/lib/python2.5/compiler/transformer.py(646)expr()
-> return self.com_binary(Bitor, nodelist)
/usr/local/lib/python2.5/compiler/transformer.py(1065)com_binary()
-> return self.lookup_node(n)(n[1:])
/usr/local/lib/python2.5/compiler/transformer.py(650)xor_expr()
-> return self.com_binary(Bitxor, nodelist)
/usr/local/lib/python2.5/compiler/transformer.py(1065)com_binary()
-> return self.lookup_node(n)(n[1:])
/usr/local/lib/python2.5/compiler/transformer.py(654)and_expr()
-> return self.com_binary(Bitand, nodelist)
/usr/local/lib/python2.5/compiler/transformer.py(1065)com_binary()
-> return self.lookup_node(n)(n[1:])
/usr/local/lib/python2.5/compiler/transformer.py(658)shift_expr()
-> node = self.com_node(nodelist[0])
/usr/local/lib/python2.5/compiler/transformer.py(792)com_node()
-> return self._dispatch[node[0]](node[1:])
/usr/local/lib/python2.5/compiler/transformer.py(670)arith_expr()
-> node = self.com_node(nodelist[0])
/usr/local/lib/python2.5/compiler/transformer.py(792)com_node()
-> return self._dispatch[node[0]](node[1:])
/usr/local/lib/python2.5/compiler/transformer.py(682)term()
-> node = self.com_node(nodelist[0])
/usr/local/lib/python2.5/compiler/transformer.py(792)com_node()
-> return self._dispatch[node[0]](node[1:])
/usr/local/lib/python2.5/compiler/transformer.py(702)factor()
-> node = self.lookup_node(nodelist[-1])(nodelist[-1][1:])
/usr/local/lib/python2.5/compiler/transformer.py(714)power()
-> node = self.com_node(nodelist[0])
/usr/local/lib/python2.5/compiler/transformer.py(792)com_node()
-> return self._dispatch[node[0]](node[1:])
/usr/local/lib/python2.5/compiler/transformer.py(726)atom()
-> return self._atom_dispatch[nodelist[0][0]](nodelist)
/usr/local/lib/python2.5/compiler/transformer.py(731)atom_lpar()
-> return self.com_node(nodelist[1])
/usr/local/lib/python2.5/compiler/transformer.py(792)com_node()
-> return self._dispatch[node[0]](node[1:])
/usr/local/lib/python2.5/compiler/transformer.py(577)testlist_gexp()
-> return self.testlist(nodelist)
/usr/local/lib/python2.5/compiler/transformer.py(567)testlist()
-> return self.com_binary(Tuple, nodelist)
/usr/local/lib/python2.5/compiler/transformer.py(1065)com_binary()
-> return self.lookup_node(n)(n[1:])
/usr/local/lib/python2.5/compiler/transformer.py(583)test()
-> then = self.com_node(nodelist[0])
/usr/local/lib/python2.5/compiler/transformer.py(792)com_node()
-> return self._dispatch[node[0]](node[1:])
/usr/local/lib/python2.5/compiler/transformer.py(597)or_test()
-> return self.com_binary(Or, nodelist)
/usr/local/lib/python2.5/compiler/transformer.py(1065)com_binary()
-> return self.lookup_node(n)(n[1:])
/usr/local/lib/python2.5/compiler/transformer.py(602)and_test()
-> return self.com_binary(And, nodelist)
/usr/local/lib/python2.5/compiler/transformer.py(1065)com_binary()
-> return self.lookup_node(n)(n[1:])
/usr/local/lib/python2.5/compiler/transformer.py(606)not_test()
-> result = self.com_node(nodelist[-1])
/usr/local/lib/python2.5/compiler/transformer.py(792)com_node()
-> return self._dispatch[node[0]](node[1:])
/usr/local/lib/python2.5/compiler/transformer.py(613)comparison()
-> node = self.com_node(nodelist[0])
/usr/local/lib/python2.5/compiler/transformer.py(792)com_node()
-> return self._dispatch[node[0]](node[1:])
/usr/local/lib/python2.5/compiler/transformer.py(646)expr()
-> return self.com_binary(Bitor, nodelist)
/usr/local/lib/python2.5/compiler/transformer.py(1065)com_binary()
-> return self.lookup_node(n)(n[1:])
/usr/local/lib/python2.5/compiler/transformer.py(650)xor_expr()
-> return self.com_binary(Bitxor, nodelist)
/usr/local/lib/python2.5/compiler/transformer.py(1065)com_binary()
-> return self.lookup_node(n)(n[1:])
/usr/local/lib/python2.5/compiler/transformer.py(654)and_expr()
-> return self.com_binary(Bitand, nodelist)
/usr/local/lib/python2.5/compiler/transformer.py(1065)com_binary()
-> return self.lookup_node(n)(n[1:])
/usr/local/lib/python2.5/compiler/transformer.py(658)shift_expr()
-> node = self.com_node(nodelist[0])
/usr/local/lib/python2.5/compiler/transformer.py(792)com_node()
-> return self._dispatch[node[0]](node[1:])
/usr/local/lib/python2.5/compiler/transformer.py(670)arith_expr()
-> node = self.com_node(nodelist[0])
/usr/local/lib/python2.5/compiler/transformer.py(792)com_node()
-> return self._dispatch[node[0]](node[1:])
/usr/local/lib/python2.5/compiler/transformer.py(682)term()
-> node = self.com_node(nodelist[0])
/usr/local/lib/python2.5/compiler/transformer.py(792)com_node()
-> return self._dispatch[node[0]](node[1:])
/usr/local/lib/python2.5/compiler/transformer.py(702)factor()
-> node = self.lookup_node(nodelist[-1])(nodelist[-1][1:])
/usr/local/lib/python2.5/compiler/transformer.py(714)power()
-> node = self.com_node(nodelist[0])
/usr/local/lib/python2.5/compiler/transformer.py(792)com_node()
-> return self._dispatch[node[0]](node[1:])
/usr/local/lib/python2.5/compiler/transformer.py(726)atom()
-> return self._atom_dispatch[nodelist[0][0]](nodelist)
/usr/local/lib/python2.5/compiler/transformer.py(731)atom_lpar()
-> return self.com_node(nodelist[1])
/usr/local/lib/python2.5/compiler/transformer.py(792)com_node()
-> return self._dispatch[node[0]](node[1:])
/usr/local/lib/python2.5/compiler/transformer.py(577)testlist_gexp()
-> return self.testlist(nodelist)
/usr/local/lib/python2.5/compiler/transformer.py(567)testlist()
-> return self.com_binary(Tuple, nodelist)
/usr/local/lib/python2.5/compiler/transformer.py(1065)com_binary()
-> return self.lookup_node(n)(n[1:])
/usr/local/lib/python2.5/compiler/transformer.py(583)test()
-> then = self.com_node(nodelist[0])
/usr/local/lib/python2.5/compiler/transformer.py(792)com_node()
-> return self._dispatch[node[0]](node[1:])
/usr/local/lib/python2.5/compiler/transformer.py(597)or_test()
-> return self.com_binary(Or, nodelist)
/usr/local/lib/python2.5/compiler/transformer.py(1065)com_binary()
-> return self.lookup_node(n)(n[1:])
/usr/local/lib/python2.5/compiler/transformer.py(602)and_test()
-> return self.com_binary(And, nodelist)
/usr/local/lib/python2.5/compiler/transformer.py(1065)com_binary()
-> return self.lookup_node(n)(n[1:])
/usr/local/lib/python2.5/compiler/transformer.py(606)not_test()
-> result = self.com_node(nodelist[-1])
/usr/local/lib/python2.5/compiler/transformer.py(792)com_node()
-> return self._dispatch[node[0]](node[1:])
/usr/local/lib/python2.5/compiler/transformer.py(613)comparison()
-> node = self.com_node(nodelist[0])
/usr/local/lib/python2.5/compiler/transformer.py(792)com_node()
-> return self._dispatch[node[0]](node[1:])
/usr/local/lib/python2.5/compiler/transformer.py(646)expr()
-> return self.com_binary(Bitor, nodelist)
/usr/local/lib/python2.5/compiler/transformer.py(1065)com_binary()
-> return self.lookup_node(n)(n[1:])
/usr/local/lib/python2.5/compiler/transformer.py(650)xor_expr()
-> return self.com_binary(Bitxor, nodelist)
/usr/local/lib/python2.5/compiler/transformer.py(1065)com_binary()
-> return self.lookup_node(n)(n[1:])
/usr/local/lib/python2.5/compiler/transformer.py(654)and_expr()
-> return self.com_binary(Bitand, nodelist)
/usr/local/lib/python2.5/compiler/transformer.py(1065)com_binary()
-> return self.lookup_node(n)(n[1:])
/usr/local/lib/python2.5/compiler/transformer.py(658)shift_expr()
-> node = self.com_node(nodelist[0])
/usr/local/lib/python2.5/compiler/transformer.py(792)com_node()
-> return self._dispatch[node[0]](node[1:])
/usr/local/lib/python2.5/compiler/transformer.py(670)arith_expr()
-> node = self.com_node(nodelist[0])
/usr/local/lib/python2.5/compiler/transformer.py(792)com_node()
-> return self._dispatch[node[0]](node[1:])
/usr/local/lib/python2.5/compiler/transformer.py(682)term()
-> node = self.com_node(nodelist[0])
/usr/local/lib/python2.5/compiler/transformer.py(792)com_node()
-> return self._dispatch[node[0]](node[1:])
/usr/local/lib/python2.5/compiler/transformer.py(702)factor()
-> node = self.lookup_node(nodelist[-1])(nodelist[-1][1:])
/usr/local/lib/python2.5/compiler/transformer.py(714)power()
-> node = self.com_node(nodelist[0])
/usr/local/lib/python2.5/compiler/transformer.py(792)com_node()
-> return self._dispatch[node[0]](node[1:])
/usr/local/lib/python2.5/compiler/transformer.py(726)atom()
-> return self._atom_dispatch[nodelist[0][0]](nodelist)
/usr/local/lib/python2.5/compiler/transformer.py(731)atom_lpar()
-> return self.com_node(nodelist[1])
/usr/local/lib/python2.5/compiler/transformer.py(792)com_node()
-> return self._dispatch[node[0]](node[1:])
/usr/local/lib/python2.5/compiler/transformer.py(577)testlist_gexp()
-> return self.testlist(nodelist)
/usr/local/lib/python2.5/compiler/transformer.py(567)testlist()
-> return self.com_binary(Tuple, nodelist)
/usr/local/lib/python2.5/compiler/transformer.py(1065)com_binary()
-> return self.lookup_node(n)(n[1:])
> /usr/local/lib/python2.5/compiler/transformer.py(579)test()
-> def test(self, nodelist):
(Pdb) n
> /usr/local/lib/python2.5/compiler/transformer.py(581)test()
-> if len(nodelist) == 1 and nodelist[0][0] == symbol.lambdef:
(Pdb) n
> /usr/local/lib/python2.5/compiler/transformer.py(583)test()
-> then = self.com_node(nodelist[0])
(Pdb) s
--Call--
> /usr/local/lib/python2.5/compiler/transformer.py(787)com_node()
-> def com_node(self, node):
(Pdb) n
> /usr/local/lib/python2.5/compiler/transformer.py(792)com_node()
-> return self._dispatch[node[0]](node[1:])
(Pdb) s
--Call--
> /usr/local/lib/python2.5/compiler/transformer.py(593)or_test()
-> def or_test(self, nodelist):
(Pdb) n
> /usr/local/lib/python2.5/compiler/transformer.py(595)or_test()
-> if len(nodelist) == 1 and nodelist[0][0] == symbol.lambdef:
(Pdb) n
> /usr/local/lib/python2.5/compiler/transformer.py(597)or_test()
-> return self.com_binary(Or, nodelist)
(Pdb) s
--Call--
> /usr/local/lib/python2.5/compiler/transformer.py(1060)com_binary()
-> def com_binary(self, constructor, nodelist):
(Pdb) bt
Bus error (core dumped)
r = '(((a)))'
def test():
import pdb
pdb.set_trace()
a = parser.expr(r)
b = parser.ast2tuple(a, line_info=1)
print b
print Transformer().compile_node(b)
from threading import Thread
import parser
from compiler.transformer import Transformer
from compiler import parse
t = Thread(target = test)
t.start()
t.join()
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe:
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com