summaryrefslogtreecommitdiffstats
path: root/scripts/checkkconfigsymbols.py
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/checkkconfigsymbols.py')
-rwxr-xr-xscripts/checkkconfigsymbols.py9
1 files changed, 7 insertions, 2 deletions
diff --git a/scripts/checkkconfigsymbols.py b/scripts/checkkconfigsymbols.py
index d89371cc9110..2f4b7ffd5570 100755
--- a/scripts/checkkconfigsymbols.py
+++ b/scripts/checkkconfigsymbols.py
@@ -20,18 +20,20 @@ OPERATORS = r"&|\(|\)|\||\!"
20FEATURE = r"(?:\w*[A-Z0-9]\w*){2,}" 20FEATURE = r"(?:\w*[A-Z0-9]\w*){2,}"
21DEF = r"^\s*(?:menu){,1}config\s+(" + FEATURE + r")\s*" 21DEF = r"^\s*(?:menu){,1}config\s+(" + FEATURE + r")\s*"
22EXPR = r"(?:" + OPERATORS + r"|\s|" + FEATURE + r")+" 22EXPR = r"(?:" + OPERATORS + r"|\s|" + FEATURE + r")+"
23STMT = r"^\s*(?:if|select|depends\s+on)\s+" + EXPR 23DEFAULT = r"default\s+.*?(?:if\s.+){,1}"
24STMT = r"^\s*(?:if|select|depends\s+on|(?:" + DEFAULT + r"))\s+" + EXPR
24SOURCE_FEATURE = r"(?:\W|\b)+[D]{,1}CONFIG_(" + FEATURE + r")" 25SOURCE_FEATURE = r"(?:\W|\b)+[D]{,1}CONFIG_(" + FEATURE + r")"
25 26
26# regex objects 27# regex objects
27REGEX_FILE_KCONFIG = re.compile(r".*Kconfig[\.\w+\-]*$") 28REGEX_FILE_KCONFIG = re.compile(r".*Kconfig[\.\w+\-]*$")
28REGEX_FEATURE = re.compile(r"(" + FEATURE + r")") 29REGEX_FEATURE = re.compile(r'(?!\B"[^"]*)' + FEATURE + r'(?![^"]*"\B)')
29REGEX_SOURCE_FEATURE = re.compile(SOURCE_FEATURE) 30REGEX_SOURCE_FEATURE = re.compile(SOURCE_FEATURE)
30REGEX_KCONFIG_DEF = re.compile(DEF) 31REGEX_KCONFIG_DEF = re.compile(DEF)
31REGEX_KCONFIG_EXPR = re.compile(EXPR) 32REGEX_KCONFIG_EXPR = re.compile(EXPR)
32REGEX_KCONFIG_STMT = re.compile(STMT) 33REGEX_KCONFIG_STMT = re.compile(STMT)
33REGEX_KCONFIG_HELP = re.compile(r"^\s+(help|---help---)\s*$") 34REGEX_KCONFIG_HELP = re.compile(r"^\s+(help|---help---)\s*$")
34REGEX_FILTER_FEATURES = re.compile(r"[A-Za-z0-9]$") 35REGEX_FILTER_FEATURES = re.compile(r"[A-Za-z0-9]$")
36REGEX_NUMERIC = re.compile(r"0[xX][0-9a-fA-F]+|[0-9]+")
35 37
36 38
37def parse_options(): 39def parse_options():
@@ -314,6 +316,9 @@ def parse_kconfig_file(kfile, defined_features, referenced_features):
314 line = line.strip('\n') 316 line = line.strip('\n')
315 features.extend(get_features_in_line(line)) 317 features.extend(get_features_in_line(line))
316 for feature in set(features): 318 for feature in set(features):
319 if REGEX_NUMERIC.match(feature):
320 # ignore numeric values
321 continue
317 paths = referenced_features.get(feature, set()) 322 paths = referenced_features.get(feature, set())
318 paths.add(kfile) 323 paths.add(kfile)
319 referenced_features[feature] = paths 324 referenced_features[feature] = paths