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.
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.