Hi,
Thanks for try Lemon, I'd simple explain what's Lemon is and what's it used for.
The Lemon is a very simple and small language, syntax most come from C/C++ and Java, Lemon also used a lot of Python's design.but different of others, Lemon will prefer use **function** instead syntax, like yield() and callcc() are both function, It's in the object system. not language, to keep language stable.
The most useful of Lemon is It's can be C's DSL, I used lemon in C project, everything is hard implementation in couple of line C or without GC. As you can see lemon has a very simple C interface, can easily call from C also can easily wrap a C function to lemon.
The implementation of Lemon has two separate part:
1, The Language, parser, compiler, virtual machine, collector, etc.
this part of code is very simple and easy understand, filename is the name of part.I'll keep this part of code very simple and tight.
2, The Object System.
Everything in source code start with 'l' is object(except lemon.c and lexer.c).The core of object only required 1 structure and 1 function.Lemon almost expose every import structure to user,like lframe.c it's the virtual machine's call frame.I made it a standard object, that's why I can simply implementation yield and callcc in function way.