def test_list(): check_parse( 'foo [:k1 v1 1 (foo 2)]', List([ Tuple([ Symbol('foo'), List([ Keyword('k1'), Symbol('v1'), Number(1), Tuple([Symbol('foo'), Number(2)]) ]) ]), ]), )
def test_indent(): check_parse( """ foo "bar" """, List([ Tuple([Symbol('foo'), String('bar')]), ]), ) check_parse( """ foo "bar" 5 "baz" """, List([ Tuple([ Symbol('foo'), Tuple([ Symbol('join'), List([String('bar'), Number(5), String('baz')]) ]) ]), ]), )
def test_implicit_tuple(): check_parse( 'foo :bar 5 "baz"', List([ Tuple([Symbol('foo'), Keyword('bar'), Number(5), String('baz')]), ]), )
def test_explicit_tuple(): check_parse( 'foo (bar 5) "baz"', List([ Tuple([ Symbol('foo'), Tuple([Symbol('bar'), Number(5)]), String('baz') ]), ]), )
def test_nested_indent(): check_parse( """ foo bar 1 baz 2 """, List([ Tuple([ Symbol('foo'), Tuple([ Symbol('join'), List([ Tuple([Symbol('bar'), Number(1)]), Tuple([Symbol('baz'), Number(2)]) ]) ]) ]), ]), )
def test_dict(): check_parse( 'foo {:k1 v1 :k2 (v2 3)}', List([ Tuple([ Symbol('foo'), Dict([ Keyword('k1'), Symbol('v1'), Keyword('k2'), Tuple([Symbol('v2'), Number(3)]) ]) ]), ]), )