Programmers' Toolbox


L98 is a compiler developed in Java with the help of JavaCC for a language that resembles ML in syntax.

The generated code can be bytecodes for a stack oriented machine or x86 Assembly code.

Gas is then used as final compilation step.


A grammar analyzer for a very small subset of Pascal done in SWI Prolog. For more info see the manual.

Oberon-2-Frontend Tools

A grammar and lexical specification for the Oberon-2 language.


A small interpreter done in Caml Light. Recently migrated to F# as well.


A calculator for MS-DOS done in 80x86 assembly. It has an expression evaluator that was done using a recursive descent parser. The calculator supports variables. Most of the documentation is in Portuguese but it has enough information in English to show how to use it.