Esempio n. 1
0
def test_lexer():
    lexer = lisplexer()
    lexer.input("""(a 
                      (nested) list (of 534 atoms [and :symbols]
                          (and lists)))  ;; with comments
                """)
    assert 20 == len([tok for tok in lexer])
    lexer.input("")
    assert [tok for tok in lexer] == []
Esempio n. 2
0
except ImportError:
    pass
else:
    import os
    histfile = os.path.join(os.path.expanduser("~"), ".pyclojurehist")
    try:
        readline.read_history_file(histfile)
    except IOError:
        # Pass here as there isn't any history file, so one will be
        # written by atexit
        pass
    import atexit
    atexit.register(readline.write_history_file, histfile)

parse = lispparser()
lexer = lisplexer()

def main():
    global_scope = Scope()
    scopechain = [global_scope]
    while True:
        try:
            txt = raw_input("pylisp> ")
            if re.search('^\s*$', txt):
                continue
            else:
                print(tostring(evaluate(parse(txt), scopechain)))
        except EOFError:
            break
        except KeyboardInterrupt:
            print  # Give user a newline after Cntrl-C for readability