Usage
./inter, followed by a command (For example: "(+ 1 2 3)"), folowed by empty lists at the prompt ("()") to step through execution.
Download
This is the current version; I'm not tagging with a version number as this will get updated as additional features get added. Compilation is similar to below
This is a code snapshot as of the end of the Summer project. It includes a simple interpreter for lisp expressions using the smallstep interpreter by default. To enable the old style of interpreter with support for robotics interaction, you will need to comment out lines 1959 and 1958 and uncomment the lines 1954 and 1955 as well as the line reading "// #define __WITHROBOTICS__" towards to the top of the file after introductory comments.
Compiling in robotics support requires the playerc library from the Player Stage Website and should be built using: "gcc -o inter `pkg-config --cflags playerc` inter-1.0.c `pkg-config --libs playerc`".
Once built, you should run the stage program with a world file as argument: "stage simple.world". The exact location of .world sample worlds is installation dependant; on MacOSX using stage from the darwin ports project, world files are stored in "/opt/local/var/db/dports/software/playerstage-stage/2.0.3_0/opt/local/share/stage/worlds/simple.world". On a ubuntu system the equivalent is "/usr/share/stage/worlds/".
Now you can run the robotlang interpreter! Assuming you used the gcc build line detailed about, ./inter from the directory you put inter-1.0.c into. You can use a few commands to control the robot - rmove followed by three arguments to move the robot (Forward, Sideways and Rotational), rpos (No arguments) to show the current position of the robot and rlas (No arguments) to show data from the laser rangefinder.
If all else fails, you can always watch this little movie of the robot moving around in circles :-)