generated from sethub/template
35 lines
1013 B
Python
35 lines
1013 B
Python
def gen_range_tables(out, name, s_suffix, l_suffix, ranges):
|
|||
|
|
numshort = 0
|
||
|
|
numlong = 0
|
||
|
|
sptr = "NULL"
|
||
|
|
lptr = "NULL"
|
||
|
|
|
||
|
|
for range in ranges:
|
||
|
|
(low, high) = range
|
||
|
|
if high < 0x10000:
|
||
|
|
if numshort == 0:
|
||
|
|
sptr = name + s_suffix
|
||
|
|
pline = "static const xmlChSRange %s[] = {" % sptr
|
||
|
|
else:
|
||
|
|
pline += ","
|
||
|
|
numshort += 1
|
||
|
|
else:
|
||
|
|
if numlong == 0:
|
||
|
|
if numshort > 0:
|
||
|
|
out.write(pline + "};\n")
|
||
|
|
lptr = name + l_suffix
|
||
|
|
pline = "static const xmlChLRange %s[] = {" % lptr
|
||
|
|
else:
|
||
|
|
pline += ","
|
||
|
|
numlong += 1
|
||
|
|
if len(pline) > 60:
|
||
|
|
out.write(pline + "\n")
|
||
|
|
pline = " "
|
||
|
|
elif pline[-1:] == ",":
|
||
|
|
pline += " "
|
||
|
|
pline += "{%s, %s}" % (hex(low), hex(high))
|
||
|
|
|
||
|
|
out.write(pline + "};\n")
|
||
|
|
|
||
|
|
return "{%s,%s,%s,%s}" % (numshort, numlong, sptr, lptr)
|