mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-12-27 19:09:47 +00:00
87aa20632d
--HG-- extra : rebase_source : 0bcfa5b446d0c19610d9d61dd7e281d3923c8736
38 lines
870 B
Python
38 lines
870 B
Python
"""
|
|
Take the *.framedata files from graph-frameclasses.js and combine them
|
|
into a single graphviz file.
|
|
|
|
stdin: a list of .framedata file names (e.g. from xargs)
|
|
stdout: a graphviz file
|
|
|
|
e.g. `find <objdir> -name "*.framedata" | python aggregate-frameclasses.py |
|
|
dot -Tpng -o frameclasses-graph.png -`
|
|
"""
|
|
|
|
import sys
|
|
|
|
classdict = {}
|
|
|
|
for line in sys.stdin:
|
|
file = line.strip()
|
|
fd = open(file)
|
|
|
|
output = None
|
|
for line in fd:
|
|
if line.startswith('CLASS-DEF: '):
|
|
cname = line[11:-1]
|
|
if cname not in classdict:
|
|
output = classdict[cname] = []
|
|
else:
|
|
output = None
|
|
elif output is not None:
|
|
output.append(line)
|
|
|
|
sys.stdout.write('digraph g {\n')
|
|
|
|
for olist in classdict.itervalues():
|
|
for line in olist:
|
|
sys.stdout.write(line)
|
|
|
|
sys.stdout.write('}\n')
|