# -*- Python -*- vim: set syntax=python tabstop=4 expandtab cc=80: # ===----------------------------------------------------------------------===## # # Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. # See https://llvm.org/LICENSE.txt for license information. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception # # ===----------------------------------------------------------------------===## """ match - A set of functions for matching symbols in a list to a list of regexs """ import re def find_and_report_matching(symbol_list, regex_list): report = "" found_count = 0 for regex_str in regex_list: report += 'Matching regex "%s":\n' % regex_str matching_list = find_matching_symbols(symbol_list, regex_str) if not matching_list: report += " No matches found\n\n" continue # else found_count += len(matching_list) for m in matching_list: report += " MATCHES: %s\n" % m["name"] report += "\n" return found_count, report def find_matching_symbols(symbol_list, regex_str): regex = re.compile(regex_str) matching_list = [] for s in symbol_list: if regex.match(s["name"]): matching_list += [s] return matching_list