A small lambda-language interpreter written in Python
Syntax is very much in the javascript/C/Java style, and I'm currently parsing with a hand-written recursive descent parser, which isn't ideal.
To get a feel for the language, first check out the wiki, then
read through the integration tests in pyscheme/tests/integration
I'm new to Python so if anyone has any better way of doing this please comment.
In order to get this running on my laptop after pushing to GitHub from my home computer I did the following:
- Use PyCharm to create a new project called PyScheme.
- go to your pycharm projects root directory:
cd ~/PycharmProjects
- clone this repository to a temporary location alongside (not in) the PyScheme project:
git clone git@github.com:billhails/PyScheme.git pyscheme-tmp
- Copy everything from that temp location into the PyScheme directory (note the trailing slashes):
cp -R pyscheme-tmp/ PyScheme/
- delete the unneeded temporary clone:
rm -rf pyscheme-tmp
- check that it worked:
cd PyScheme
git status
If, like me, you're using PyCharm CE, You'll additionally need to install coverage
. To install coverage
go to the root of the distro and do
$ source ./venv/bin/activate
$ pip install coverage
Once those packages are installed, to see test coverage just run the run_coverage.py
script, then open
htmlcov/index.html
in your browser.
I believe that the PyCharm Professional edition has built-in coverage support.