#!/usr/bin/env python3 import sys, re print('#include ') for header in sys.argv[2:]: print('#include "{}"'.format(header.split('/')[-1])) print(''' /* We want to check deprecated symbols too, without complaining */ #pragma GCC diagnostic ignored "-Wdeprecated-declarations" const void* symbols[] = {''') for line in open(sys.argv[1]): match = re.search('^ +([a-zA-Z0-9_]+);', line) if match: s = match.group(1) if s == 'sd_bus_object_vtable_format': print(' &{},'.format(s)) else: print(' {},'.format(s)) print('''}; int main(void) { unsigned i; for (i = 0; i < sizeof(symbols)/sizeof(void*); i++) printf("%p\\n", symbols[i]); return 0; }''')