'Get a parser based on its name.  We reuse parsers during this
visitation, so parser instances are cached.'

def get_parser(self, parser_name):

    parser_name = parsers._parser_aliases.get(parser_name, parser_name)
    if (not self.parsers.has_key(parser_name)):
        cls = parsers.get_parser_class(parser_name)
        self.parsers[parser_name] = cls()
    return self.parsers[parser_name]
