64 lines
1.7 KiB
Python
64 lines
1.7 KiB
Python
#!/usr/bin/env python
|
|
"""
|
|
Usage: make_index.py <html_ref_file> [ > <output_func_index_file> ]
|
|
This script parses html reference file, creates alphabetical list of
|
|
functions and list of examples ]
|
|
"""
|
|
|
|
import sys, re, string
|
|
|
|
f = open(sys.argv[1])
|
|
func_list = {}
|
|
struct_list = []
|
|
func_decl_re = re.compile( r'<a name="decl_(.+?)"' )
|
|
|
|
|
|
for l in f.xreadlines():
|
|
llist = func_decl_re.findall(l)
|
|
if llist:
|
|
ll = llist[0]
|
|
if ll.startswith('Cv'):
|
|
struct_list.append(ll)
|
|
elif ll.startswith('Ipl'):
|
|
struct_list.append(ll)
|
|
elif ll.startswith('cvm'):
|
|
sublist = func_list.get(ll[3], [])
|
|
sublist.append(ll)
|
|
func_list[ll[3]] = sublist
|
|
elif ll.startswith('cv'):
|
|
sublist = func_list.get(ll[2], [])
|
|
sublist.append(ll)
|
|
func_list[ll[2]] = sublist
|
|
|
|
f.close()
|
|
|
|
struct_list.sort()
|
|
func_letters = func_list.keys()
|
|
func_letters.sort()
|
|
|
|
print "<html><body>"
|
|
|
|
columns = 3
|
|
|
|
for letter in func_letters:
|
|
print '<hr><h3>%s</h3>\n<table width="100%%">' % letter
|
|
sublist = func_list[letter]
|
|
sublist.sort()
|
|
col_len = (len(sublist)+columns-1)/columns
|
|
#if col_len*columns > len(sublist):
|
|
# sublist.append( "" * (col_len*columns - len(sublist)) )
|
|
for i in range(col_len):
|
|
print '<tr>'
|
|
for j in range(columns):
|
|
if i + j*col_len < len(sublist):
|
|
fn = sublist[i+j*col_len]
|
|
fn_short = fn.lstrip(string.lowercase)
|
|
print '<td width="25%%"><a href="#decl_%s">%s</a></td>' % (fn, fn_short)
|
|
else:
|
|
print '<td width="25%%"></td>'
|
|
print '</tr>'
|
|
print "</table>"
|
|
|
|
|
|
|