Added option types, named types, variable definitions and some cleaned up parser definition.