Parsers based on programmed grammars