mirror of
https://github.com/YosysHQ/sby.git
synced 2025-04-05 22:14:08 +00:00
18 lines
597 B
Python
18 lines
597 B
Python
import re
|
|
|
|
|
|
def line_ref(dir, filename, pattern):
|
|
with open(dir + "/src/" + filename) as file:
|
|
if isinstance(pattern, str):
|
|
pattern_re = re.compile(re.escape(pattern))
|
|
else:
|
|
pattern_re = pattern
|
|
pattern = pattern.pattern
|
|
|
|
for number, line in enumerate(file, 1):
|
|
if pattern_re.search(line):
|
|
# Needs to match source locations for both verilog frontends
|
|
return fr"{filename}:(?:{number}|\d+\.\d+-{number}\.\d+)"
|
|
|
|
raise RuntimeError("%s: pattern `%s` not found" % (filename, pattern))
|