File: ubiviz

package info (click to toggle)
llvm-toolchain-6.0 1%3A6.0.1-10
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 598,080 kB
  • sloc: cpp: 3,046,253; ansic: 595,057; asm: 271,965; python: 128,926; objc: 106,554; sh: 21,906; lisp: 10,191; pascal: 6,094; ml: 5,544; perl: 5,265; makefile: 2,227; cs: 2,027; xml: 686; php: 212; csh: 117
file content (76 lines) | stat: -rwxr-xr-x 2,046 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#!/usr/bin/env python
#
#                     The LLVM Compiler Infrastructure
#
# This file is distributed under the University of Illinois Open Source
# License. See LICENSE.TXT for details.
#
##===--------------------------------------------------------------------===##
#
# This script reads visualization data emitted by the static analyzer for
# display in Ubigraph.
#
##===--------------------------------------------------------------------===##

import xmlrpclib
import sys


def Error(message):
    print >> sys.stderr, 'ubiviz: ' + message
    sys.exit(1)


def StreamData(filename):
    file = open(filename)
    for ln in file:
        yield eval(ln)
    file.close()


def Display(G, data):
    action = data[0]
    if action == 'vertex':
        vertex = data[1]
        G.new_vertex_w_id(vertex)
        for attribute in data[2:]:
            G.set_vertex_attribute(vertex, attribute[0], attribute[1])
    elif action == 'edge':
        src = data[1]
        dst = data[2]
        edge = G.new_edge(src, dst)
        for attribute in data[3:]:
            G.set_edge_attribute(edge, attribute[0], attribute[1])
    elif action == "vertex_style":
        style_id = data[1]
        parent_id = data[2]
        G.new_vertex_style_w_id(style_id, parent_id)
        for attribute in data[3:]:
            G.set_vertex_style_attribute(style_id, attribute[0], attribute[1])
    elif action == "vertex_style_attribute":
        style_id = data[1]
        for attribute in data[2:]:
            G.set_vertex_style_attribute(style_id, attribute[0], attribute[1])
    elif action == "change_vertex_style":
        vertex_id = data[1]
        style_id = data[2]
        G.change_vertex_style(vertex_id, style_id)


def main(args):
    if len(args) == 0:
        Error('no input files')

    server = xmlrpclib.Server('http://127.0.0.1:20738/RPC2')
    G = server.ubigraph

    for arg in args:
        G.clear()
        for x in StreamData(arg):
            Display(G, x)

    sys.exit(0)


if __name__ == '__main__':
    main(sys.argv[1:])