Grammars and parsing with CUP.
Clogs language and compiler.
Abstract syntax trees and pretty printing.