From 60ff738c4f245c8d9baee807982d24de2a443116 Mon Sep 17 00:00:00 2001 From: Eric Snow Date: Fri, 15 Jul 2022 22:44:03 -0600 Subject: [PATCH 1/4] Fix up the table rendering code. --- Tools/c-analyzer/c_common/tables.py | 285 ++++++++++++++++------------ 1 file changed, 163 insertions(+), 122 deletions(-) diff --git a/Tools/c-analyzer/c_common/tables.py b/Tools/c-analyzer/c_common/tables.py index 130be6beba5f81..fe8e8cf473de4f 100644 --- a/Tools/c-analyzer/c_common/tables.py +++ b/Tools/c-analyzer/c_common/tables.py @@ -1,3 +1,4 @@ +from collections import namedtuple import csv import re import textwrap @@ -225,7 +226,11 @@ def _normalize_table_file_props(header, sep): def resolve_columns(specs): if isinstance(specs, str): specs = specs.replace(',', ' ').strip().split() - return _resolve_colspecs(specs) + resolved = [] + for raw in specs: + column = ColumnSpec.from_raw(raw) + resolved.append(column) + return resolved def build_table(specs, *, sep=' ', defaultwidth=None): @@ -233,37 +238,145 @@ def build_table(specs, *, sep=' ', defaultwidth=None): return _build_table(columns, sep=sep, defaultwidth=defaultwidth) -_COLSPEC_RE = re.compile(textwrap.dedent(r''' - ^ - (?: - \[ - ( - (?: [^\s\]] [^\]]* )? - [^\s\]] - ) #