Replace hardcoded string literal and magic number with a class constant for the initial state marker in DOT file parsing. The previous implementation used the magic string "__init_" directly in the code along with a hardcoded length of 7 for substring extraction, which made the code less maintainable and harder to understand.
This change introduces a class constant init_marker to serve as a single source of truth for the initial state prefix. The code now uses startswith() for clearer intent and calculates the substring position dynamically using len(), eliminating the magic number. If the marker value needs to change in the future, only the constant definition requires updating rather than multiple locations in the code. The refactoring improves code readability and maintainability while preserving the exact same runtime behavior. Signed-off-by: Wander Lairson Costa <[email protected]> Reviewed-by: Gabriele Monaco <[email protected]> Reviewed-by: Nam Cao <[email protected]> --- tools/verification/rvgen/rvgen/automata.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tools/verification/rvgen/rvgen/automata.py b/tools/verification/rvgen/rvgen/automata.py index e4c0335cd0fba..cdec78a4bbbae 100644 --- a/tools/verification/rvgen/rvgen/automata.py +++ b/tools/verification/rvgen/rvgen/automata.py @@ -42,6 +42,7 @@ class Automata: """ invalid_state_str = "INVALID_STATE" + init_marker = "__init_" # val can be numerical, uppercase (constant or macro), lowercase (parameter or function) # only numerical values should have units constraint_rule = re.compile(r""" @@ -136,8 +137,8 @@ class Automata: # "enabled_fired"}; -> enabled_fired state = raw_state.replace('"', '').replace('};', '').replace(',', '_') - if state[0:7] == "__init_": - initial_state = state[7:] + if state.startswith(self.init_marker): + initial_state = state[len(self.init_marker):] else: states.append(state) if "doublecircle" in self.__dot_lines[cursor]: -- 2.53.0
