@@ -124,7 +124,7 @@ class Token(Str): | |||||
return (self.__class__, (self.type, self.value, self.pos_in_stream, self.line, self.column, )) | return (self.__class__, (self.type, self.value, self.pos_in_stream, self.line, self.column, )) | ||||
def __repr__(self): | def __repr__(self): | ||||
return 'Token(%s, %r)' % (self.type, self.value) | |||||
return 'Token(%r, %r)' % (self.type, self.value) | |||||
def __deepcopy__(self, memo): | def __deepcopy__(self, memo): | ||||
return Token(self.type, self.value, self.pos_in_stream, self.line, self.column) | return Token(self.type, self.value, self.pos_in_stream, self.line, self.column) | ||||
@@ -25,7 +25,7 @@ class Tree(object): | |||||
return self._meta | return self._meta | ||||
def __repr__(self): | def __repr__(self): | ||||
return 'Tree(%s, %s)' % (self.data, self.children) | |||||
return 'Tree(%r, %r)' % (self.data, self.children) | |||||
def _pretty_label(self): | def _pretty_label(self): | ||||
return self.data | return self.data | ||||
@@ -172,4 +172,3 @@ def pydot__tree_to_png(tree, filename, rankdir="LR", **kwargs): | |||||
_to_pydot(tree) | _to_pydot(tree) | ||||
graph.write_png(filename) | graph.write_png(filename) | ||||
@@ -7,6 +7,7 @@ import pickle | |||||
import functools | import functools | ||||
from lark.tree import Tree | from lark.tree import Tree | ||||
from lark.lexer import Token | |||||
from lark.visitors import Visitor, Visitor_Recursive, Transformer, Interpreter, visit_children_decor, v_args, Discard | from lark.visitors import Visitor, Visitor_Recursive, Transformer, Interpreter, visit_children_decor, v_args, Discard | ||||
@@ -22,6 +23,9 @@ class TestTrees(TestCase): | |||||
data = pickle.dumps(s) | data = pickle.dumps(s) | ||||
assert pickle.loads(data) == s | assert pickle.loads(data) == s | ||||
def test_repr_runnable(self): | |||||
assert self.tree1 == eval(repr(self.tree1)) | |||||
def test_iter_subtrees(self): | def test_iter_subtrees(self): | ||||
expected = [Tree('b', 'x'), Tree('c', 'y'), Tree('d', 'z'), | expected = [Tree('b', 'x'), Tree('c', 'y'), Tree('d', 'z'), | ||||
Tree('a', [Tree('b', 'x'), Tree('c', 'y'), Tree('d', 'z')])] | Tree('a', [Tree('b', 'x'), Tree('c', 'y'), Tree('d', 'z')])] | ||||
@@ -232,4 +236,3 @@ class TestTrees(TestCase): | |||||
if __name__ == '__main__': | if __name__ == '__main__': | ||||
unittest.main() | unittest.main() | ||||