example-interpreter /

Filename Size Date modified Message
41 B
231 B
1.4 KB
536 B
Kermit - an example interpreter

This is an example interpreter written using PyPy. A preferred way to walk
through it is to follow the history of commits. Interesting tags are

parser-boilerplate - just cruft to make parser run
first-parse-test - enough support to make the first test of parser pass
parser-complete - implement enough of parser to run simple ifs and whiles
compiler-start - pass the first compiler test

Generally after each change, all py.test tests should pass.  You can install
py.test from pytest.org using "pip install -U pytest".

Kermit imports from pypy so add it to your PYTHONPATH with something like
"export PYTHONPATH=~/pypy".

If you don't have a good debugger at hand, you can walk through
the code by using winpdb with "~/kermit$ winpdb /usr/local/bin/py.test"
to start and set a breakpoint at a function by typing
"bp kermit/test/test_parser.py:test_parse_basic" in it's console.

Compiling kermit

To compile kermit first you need a copy of the pypy source code::

    $ hg clone https://bitbucket.org/pypy/pypy

Now grab a copy of this sample::

    $ hg clone https://bitbucket.org/pypy/example-interpreter

Now run the RPython translation tool on `targetkermit.py`::

    $ cd example-interpreter
    $ PYTHONPATH=../pypy python ../pypy/rpython/bin/rpython targetkermit.py

You're done! Now run the kermit interpreter::

    $ ./targetkermit-c

Enjoy :)