mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs.git
synced 2026-10-30 13:52:50 +01:00
tools/dot2c: Fix generated files going over 100 column limit
The dot2c.py script generates all states in a single line. This breaks the 100 column limit when the state machines are non-trivial. Change dot2c.py to generate the states in separate lines in case the generated line is going to be too long. Also adapt existing monitors with line length over the limit. Cc: Masami Hiramatsu <[email protected]> Cc: Tomas Glozar <[email protected]> Cc: Juri Lelli <[email protected]> Cc: Clark Williams <[email protected]> Cc: John Kacur <[email protected]> Link: https://lore.kernel.org/[email protected] Suggested-by: Nam Cao <[email protected]> Signed-off-by: Gabriele Monaco <[email protected]> Signed-off-by: Steven Rostedt (Google) <[email protected]>
This commit is contained in:
1 parent
1160ccaf77
commit
9efcf59082
2 files changed
+24
-12
No files matched your search
@@ -41,8 +41,18 @@ static const struct automaton_snep automaton_snep = {
|
||||
"schedule_exit"
|
||||
},
|
||||
.function = {
|
||||
{ non_scheduling_context_snep, non_scheduling_context_snep, scheduling_contex_snep, INVALID_STATE },
|
||||
{ INVALID_STATE, INVALID_STATE, INVALID_STATE, non_scheduling_context_snep },
|
||||
{
|
||||
non_scheduling_context_snep,
|
||||
non_scheduling_context_snep,
|
||||
scheduling_contex_snep,
|
||||
INVALID_STATE
|
||||
},
|
||||
{
|
||||
INVALID_STATE,
|
||||
INVALID_STATE,
|
||||
INVALID_STATE,
|
||||
non_scheduling_context_snep
|
||||
},
|
||||
},
|
||||
.initial_state = non_scheduling_context_snep,
|
||||
.final_states = { 1, 0 },
|
||||
|
||||
@@ -152,28 +152,30 @@ class Dot2c(Automata):
|
||||
max_state_name = max(self.states, key = len).__len__()
|
||||
return max(max_state_name, self.invalid_state_str.__len__())
|
||||
|
||||
def __get_state_string_length(self):
|
||||
maxlen = self.__get_max_strlen_of_states() + self.enum_suffix.__len__()
|
||||
return "%" + str(maxlen) + "s"
|
||||
|
||||
def get_aut_init_function(self):
|
||||
nr_states = self.states.__len__()
|
||||
nr_events = self.events.__len__()
|
||||
buff = []
|
||||
|
||||
strformat = self.__get_state_string_length()
|
||||
|
||||
maxlen = self.__get_max_strlen_of_states() + len(self.enum_suffix)
|
||||
tab_braces = 2 * 8 + 2 + 1 # "\t\t{ " ... "}"
|
||||
comma_space = 2 # ", " count last comma here
|
||||
linetoolong = tab_braces + (maxlen + comma_space) * nr_events > self.line_length
|
||||
for x in range(nr_states):
|
||||
line = "\t\t{ "
|
||||
line = "\t\t{\n" if linetoolong else "\t\t{ "
|
||||
for y in range(nr_events):
|
||||
next_state = self.function[x][y]
|
||||
if next_state != self.invalid_state_str:
|
||||
next_state = self.function[x][y] + self.enum_suffix
|
||||
|
||||
if y != nr_events-1:
|
||||
line = line + strformat % next_state + ", "
|
||||
if linetoolong:
|
||||
line += "\t\t\t%s" % next_state
|
||||
else:
|
||||
line = line + strformat % next_state + " },"
|
||||
line += "%*s" % (maxlen, next_state)
|
||||
if y != nr_events-1:
|
||||
line += ",\n" if linetoolong else ", "
|
||||
else:
|
||||
line += "\n\t\t}," if linetoolong else " },"
|
||||
buff.append(line)
|
||||
|
||||
return self.__buff_to_string(buff)
|
||||
|
||||
Reference in new issue
Block a user