diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2017-05-26 13:20:20 -0400 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2017-05-26 13:25:51 -0400 |
commit | d4bed025ed6de39e517422b076b5af9d7b31abb7 (patch) | |
tree | f526383fe6ebe2702f46cf34233327fc75b38a0e /scripts/buildcommands.py | |
parent | a82e949c00aceaedd9d9a76ddcc3c88c9cad3d80 (diff) | |
download | kutter-d4bed025ed6de39e517422b076b5af9d7b31abb7.tar.gz kutter-d4bed025ed6de39e517422b076b5af9d7b31abb7.tar.xz kutter-d4bed025ed6de39e517422b076b5af9d7b31abb7.zip |
command: Store the command parsing information directly in array
Instead of defining an array of pointers, just define the array
directly.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'scripts/buildcommands.py')
-rw-r--r-- | scripts/buildcommands.py | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/scripts/buildcommands.py b/scripts/buildcommands.py index 3935fa63..cb19c475 100644 --- a/scripts/buildcommands.py +++ b/scripts/buildcommands.py @@ -151,37 +151,31 @@ def build_param_types(all_param_types): def build_commands(cmd_by_id, messages_by_name, all_param_types): max_cmd_msgid = max(cmd_by_id.keys()) index = [] - parsers = [] externs = {} for msgid in range(max_cmd_msgid+1): if msgid not in cmd_by_id: - index.append(" 0,") + index.append(" {\n},") continue funcname, flags, msgname = cmd_by_id[msgid] msg = messages_by_name[msgname] externs[funcname] = 1 - parsername = 'parser_%s' % (funcname,) - index.append(" &%s," % (parsername,)) parser = msgproto.MessageFormat(msgid, msg) parsercode = build_parser(parser, 1, all_param_types) - parsers.append("const struct command_parser %s PROGMEM = {" - " %s\n .flags=%s,\n .func=%s\n};" % ( - parsername, parsercode, flags, funcname)) - index = "\n".join(index) + index.append(" {%s\n .flags=%s,\n .func=%s\n}," % ( + parsercode, flags, funcname)) + index = "".join(index).strip() externs = "\n".join(["extern void "+funcname+"(uint32_t*);" for funcname in sorted(externs)]) fmt = """ %s -%s - -const struct command_parser * const command_index[] PROGMEM = { +const struct command_parser command_index[] PROGMEM = { %s }; const uint8_t command_index_size PROGMEM = ARRAY_SIZE(command_index); """ - return fmt % (externs, '\n'.join(parsers), index) + return fmt % (externs, index) ###################################################################### |