You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

44 lines
785 B

#!/usr/bin/python
import re
print "Auto-generating menu_autogen.h..."
items=set([])
fd=file("menu.c")
for line in fd:
m = re.search(r"menu_item_(\w+)\s*\(",line)
if m:
items.add( m.groups()[0])
fd.close()
items=list(items) # create clear ordering
fd=file("menu_autogen.h","wb")
fd.write("\n");
for i in range(len(items)):
fd.write("extern int8_t menu_item_%s();\n" % items[i])
fd.write("\ntypedef int8_t (*item_handler_t)();\n\n")
fd.write("item_handler_t menu_item_handlers[] = {\n")
fd.write("\t\tNULL")
for i in range(len(items)):
fd.write(",\n\t\t*menu_item_%s" % items[i])
fd.write("\n};\n\n")
for i in range(len(items)):
fd.write("#define MENU_ITEM_%s \t%s\n" % (items[i].upper(), i+1))
fd.write("\n")
fd.write("#define MENU_MAX_ITEM %s\n\n"%len(items))