From 2ced5e02eacfc6b9e67435fe3a24dcb6c3a29037 Mon Sep 17 00:00:00 2001 From: "Luke T. Shumaker" Date: Mon, 31 Mar 2025 15:58:51 -0600 Subject: measurestack: Compile all regexes upfront --- build-aux/measurestack/vcg.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'build-aux/measurestack/vcg.py') diff --git a/build-aux/measurestack/vcg.py b/build-aux/measurestack/vcg.py index ca20b34..39755e9 100644 --- a/build-aux/measurestack/vcg.py +++ b/build-aux/measurestack/vcg.py @@ -26,16 +26,16 @@ class VCGElem: attrs: dict[str, str] +re_beg = re.compile(r"(edge|node):\s*\{\s*") +_re_tok = r"[a-zA-Z_][a-zA-Z0-9_]*" +_re_str = r'"(?:[^\"]|\\.)*"' +re_attr = re.compile("(" + _re_tok + r")\s*:\s*(" + _re_tok + "|" + _re_str + r")\s*") +re_end = re.compile(r"\}\s*$") +re_skip = re.compile(r"(graph:\s*\{\s*title\s*:\s*" + _re_str + r"\s*|\})\s*") +re_esc = re.compile(r"\\.") + + def parse_vcg(reader: typing.TextIO) -> typing.Iterator[VCGElem]: - re_beg = re.compile(r"(edge|node):\s*\{\s*") - _re_tok = r"[a-zA-Z_][a-zA-Z0-9_]*" - _re_str = r'"(?:[^\"]|\\.)*"' - re_attr = re.compile( - "(" + _re_tok + r")\s*:\s*(" + _re_tok + "|" + _re_str + r")\s*" - ) - re_end = re.compile(r"\}\s*$") - re_skip = re.compile(r"(graph:\s*\{\s*title\s*:\s*" + _re_str + r"\s*|\})\s*") - re_esc = re.compile(r"\\.") for lineno, line in enumerate(reader): pos = 0 -- cgit v1.2.3-2-g168b