def METHOD_NAME(*funcs):
    """
    Parser combinator, that tries to apply one of several parsers.
    For example, if parser_foo parses "foo" and parser_bar parses "bar",
    then one_of(parser_foo, parser_bar) will parse either "foo" or "bar".
    This corresponds to
        <ParserA> | <ParserB>
    in BNF notation.
    """
    def parser(src):
        generators = [func(src) for func in funcs]
        for match in chain(*generators):
            yield match
            return
    return parser