]>
Commit | Line | Data |
---|---|---|
fca64c12 BP |
1 | #! /usr/bin/perl |
2 | ||
3 | # Copyright (c) 2009, 2010 Nicira Networks | |
4 | # | |
5 | # Licensed under the Apache License, Version 2.0 (the "License"); | |
6 | # you may not use this file except in compliance with the License. | |
7 | # You may obtain a copy of the License at: | |
8 | # | |
9 | # http://www.apache.org/licenses/LICENSE-2.0 | |
10 | # | |
11 | # Unless required by applicable law or agreed to in writing, software | |
12 | # distributed under the License is distributed on an "AS IS" BASIS, | |
13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
14 | # See the License for the specific language governing permissions and | |
15 | # limitations under the License. | |
16 | ||
17 | use strict; | |
18 | use warnings; | |
19 | ||
20 | my ($scale) = 1; | |
21 | print ".PS\n"; | |
22 | print "linethick = 1;\n"; | |
23 | while (<>) { | |
73ffb8e8 BP |
24 | if (/^graph/) { |
25 | (undef, $scale) = split; | |
26 | } elsif (/^node/) { | |
27 | my (undef, $name, $x, $y, $width, $height, $label, $style, $shape, $color, $fillcolor) = split; | |
fca64c12 BP |
28 | $x *= $scale; |
29 | $y *= $scale; | |
30 | $width *= $scale; | |
31 | $height *= $scale; | |
32 | print "box at $x,$y wid $width height $height \"$name\"\n"; | |
33 | } elsif (/edge/) { | |
34 | my (undef, $tail, $head, $n, $rest) = split(' ', $_, 5); | |
35 | my @xy; | |
36 | for (1...$n) { | |
37 | my ($x, $y); | |
38 | ($x, $y, $rest) = split(' ', $rest, 3); | |
39 | push(@xy, [$x * $scale, $y * $scale]); | |
40 | } | |
41 | my ($label, $xl, $yl); | |
42 | if (scalar(my @junk = split(' ', $rest)) > 2) { | |
43 | if ($rest =~ s/^"([^"]*)"\s+//) { | |
44 | $label = $1; | |
45 | } else { | |
46 | ($label, $rest) = split(' ', $rest, 2); | |
47 | } | |
48 | ($xl, $yl, $rest) = split(' ', $rest, 3); | |
49 | $xl *= $scale; | |
50 | $yl *= $scale; | |
51 | } | |
52 | my ($style, $color) = split(' ', $rest); | |
53 | ||
54 | print "spline -> from $xy[0][0],$xy[0][1]"; | |
55 | for (my ($i) = 0; $i <= $#xy; $i++) { | |
56 | print " to $xy[$i][0],$xy[$i][1]"; | |
57 | } | |
58 | print "\n"; | |
59 | ||
60 | print "\"$label\" at $xl,$yl\n" if defined($label); | |
61 | } | |
62 | ||
63 | } | |
64 | print ".PE\n"; |