#!/usr/bin/env python3 import sys, re print('#include ') for header in sys.argv[2:]: print('#include "{}"'.format(header.split('/')[-1])) print(''' void* functions[] = {''') for line in open(sys.argv[1]): match = re.search('^ +([a-zA-Z0-9_]+);', line) if match: print(' {},'.format(match.group(1))) print('''}; int main(void) { unsigned i; for (i = 0; i < sizeof(functions)/sizeof(void*); i++) printf("%p\\n", functions[i]); return 0; }''')