From 465434fe4572005944da6a776b4cff45c422a004 Mon Sep 17 00:00:00 2001 From: Harmen Wierenga Date: Sat, 6 Jul 2024 17:39:04 +0200 Subject: [PATCH] Simplify regex for literal number matching, improving matching speed. Also remove superfluous matching greedy regex from typed constant regex, dramatically improving speed --- fprettify/__init__.py | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/fprettify/__init__.py b/fprettify/__init__.py index d6450a3..8f9f6c1 100644 --- a/fprettify/__init__.py +++ b/fprettify/__init__.py @@ -463,16 +463,12 @@ def build_scope_parser(fypp=True, mod=True): "lock_type", "atomic_int_kind", "atomic_logical_kind", )) + r")\b", RE_FLAGS) -F90_INT_RE = r"[-+]?[0-9]+" -F90_FLOAT_RE = r"[-+]?([0-9]+\.[0-9]*|\.[0-9]+)" -F90_NUMBER_RE = "(" + F90_INT_RE + "|" + F90_FLOAT_RE + ")" -F90_FLOAT_EXP_RE = F90_NUMBER_RE + r"[eEdD]" + F90_NUMBER_RE -F90_NUMBER_ALL_RE = "(" + F90_NUMBER_RE + "|" + F90_FLOAT_EXP_RE + ")" +F90_NUMBER_ALL_RE = r"[-+]?([0-9]+(\.[0-9]*)?|\.[0-9]+)([dDeE][-+]?[0-9]+)?" F90_NUMBER_ALL_REC = re.compile(F90_NUMBER_ALL_RE, RE_FLAGS) ## F90_CONSTANTS_TYPES_RE = re.compile(r"\b" + F90_NUMBER_ALL_RE + "_(" + "|".join([a + r"\b" for a in ( F90_CONSTANTS_TYPES_RE = re.compile( - r"(" + F90_NUMBER_ALL_RE + ")*_(" + "|".join(( + r"(" + F90_NUMBER_ALL_RE + ")_(" + "|".join(( ## F2003 iso_fortran_env constants. ## F2003 iso_c_binding constants. "c_int", "c_short", "c_long", "c_long_long", "c_signed_char",