ModelLang rewritten in Scala and Parser Combinators.