WsBasic

WsBasic was my first shot at writing a compiler without any extra generation tools like lex and yacc. At the time it was necessary because I had problems with cross-platform availability for compiler generation tools. But it had another extra advantage of getting people access to a very basic extendable interpreter (making the learning curve to get into compilers a bit less steep).

The WsBasic sources can be found at sourceforge :

I chose the syntax and semantics on the way (trying to keep the interpreter sources as simple as possible) and added stuff when I needed it for various free-time and work related projects. Some scripts for my custom LCD display used in my personal home theater. The language looks a bit like basic but with functions and without goto's . I also use wsbasic as a bash scripting replacement, here's a little example script I use to call a modified f2c in an ongoing attempt to convert LAPACK routines to multi precision (the same can be done with bash ofcourse but this syntax just easier to read and modify in my opinion ):

#!/home/wschrep/bin/wsbasic

foreach file in run("ls -1 ../src/")
begin
        print "converting file :"+file
        output=run("/home/wschrep/f2c-mpieee/src/f2c -A -C -C++ ../src/"+file)
        basefile = left( file, len(file)-2 )
        print "moving to .cpp extension..."
        output=run("mv "+basefile+".c "+basefile+".cpp" )
end

Shortly after publishing the sources on sourceforge another open source project called kturtle used my project as basis for their logo-interpreter. Here is a screenshot of kturtle in action:
kturtle screenshot