recursive descent parser for a generic programming language.