Source code for elasticai.creator.vhdl.ghdl_report_parsing
[docs]
def parse_report(text: str):
lines = text.split("\n")[:-2]
def split_first_five_colons(line):
all_split = line.split(":")
reassembled = all_split[0:5] + [":".join(all_split[5:])]
return reassembled
separated = [split_first_five_colons(line) for line in lines]
fields = ("source", "line", "column", "time", "type", "content")
def parse_line(line):
parsed = dict(zip(fields, line))
parsed["type"] = parsed["type"][1:-1]
parsed["time"] = parsed["time"][1:]
parsed["line"] = int(parsed["line"])
parsed["column"] = int(parsed["column"])
return parsed
return [parse_line(line) for line in separated]