#!/usr/bin/env python # -*- coding: latin-1 -*- import sys import os from string import * curnode = '' idx_node = 0 lines = sys.stdin.readlines() gline = [] curnode = '' curgroup = ( split(lines[0], ' ')[0], [lines[0],] ) i = 1 for line in lines[1:]: key = split(line, ' ')[0] if key != curgroup[0]: gline.append(curgroup) curgroup = ( key, [line,] ) else: curgroup[1].append(line) gline.append(curgroup) for key, lines in gline: if len(lines) != 3: for line in lines: line = replace(line, 'graph ', 'digraph ') line = replace(line, '--', '->') if find(line, '_isa_') != -1: line = split(line, ' ') print '%s -> %s [ label="is a" style="dashed"];' % (line[2] , line[0]) else: print line continue try: node0 = split(lines[1], ' ')[2] label = split(split(lines[0], ' ')[3], '=')[1] node1 = split(lines[2], ' ')[2] except: raise `lines` if find(label, '_isa_') != -1: print '%s -> %s [ label="ISA" style="dashed"];' % (node0, node1) else: label = replace(label, '_', ' ') print "%s -> %s [ label=%s ];" % (node1, node0, label)