示例#1
0
def test_parser():
    parse = PyClojureParse().build().parse
    assert parse("an_atom") == Atom('an_atom')
    assert parse("(simple_list)") == List(Atom('simple_list'))
    assert parse('(two elements)') == List(Atom('two'), Atom('elements'))
    assert (parse("(three element list)") == List(Atom('three'),
                                                  Atom('element'),
                                                  Atom('list')))
    assert parse('666') == 666
    assert (parse('(a (nested (list)))') == List(
        Atom('a'), List(Atom('nested'), List(Atom('list')))))
    assert parse('()') == List()
示例#2
0
def test_core():
    Atom()
    Atom('a')
    Atom(name='a', value=6)
    List()
    List(Atom('car'))
    List(Atom('car'), Atom('cadr'), 666)
    List(List())
    List(List('car'))
    Vector()
    Vector(1, 2, 3)
    Keyword("a")
    assert Atom() == Atom()
    assert List() == List()
    assert List(1) == List(1)
    assert List(2) != List(1)
    assert List(1, 2) != List(2, 1)
    assert List(1, 2) == List(1, 2)
    assert List(Atom()) == List(Atom())
    assert List(Atom('a')) == List(Atom('a'))
    assert List(Atom('b')) != List(Atom('a'))
    assert Vector(1, 2) != Vector(2, 1)
    assert Vector(1, 2) == Vector(1, 2)
    assert Vector(1, 2) == List(1, 2)
    assert Keyword("a") == Keyword("a")
    assert Keyword("a") != Keyword("b")
    Map()
    Map(x=1)
    assert Map(x=1).keys() == ['x']
    assert Map(x=1) == Map(x=1)
    assert Map(x=1) != Map(x=2)
    assert Map(x=1) != Map(x=1, a=3)
    assert Map(x=1)["x"] == 1
示例#3
0
def deref_expr(raw):
    return List(Atom('deref'), raw)
示例#4
0
 def p_sexpr_atom(self, p):
     'sexpr : ATOM'
     p[0] = Atom(p[1])
示例#5
0
def quote_expr(raw):
    return List(Atom('quote'), raw)