vcg(1)
NAME
VCG tool - visualization of compiler graphs
SYNOPSIS
vcg [options] [filename] xvcg [options] [filename]
SYNOPSIS FOR SEQUENCES OF GRAPH SPECIFICATIONS
vcg -multi [options] [filename] [options] [filename] ...
xvcg -multi [options] [filename] [options] [filename] ...
DESCRIPTION
- The VCG tool reads a VCG specification and visualizes the
- graph. If not all positions of nodes are fixed, the tool lays
- the graph out using several heuristics as reducing the number of
- crossings, minimizing the size of edges, centering of nodes. The
- specification language of the VCG tool is nearly compatible to
- GRL, the language of the Edge tool, but contains many extensions.
- The VCG tool allows folding of dynamically or statically speci
- fied regions of the graph. It uses colors and runs on X11. (An
- older version runs on Sunview.)
GENERAL OPTIONS
- The input is stdin instead of a file.
- -h | -? Print a help message about the usage of the
- tool.
- -v | -version Print a version and copyright message.
- -silent Be silent during the layout. No messages
- or warnings are produced.
- -nocolors | -blackwhite
- Do not use colors on a color screen. On a
- monochrom screen the graph is drawn in black & white even if it
- is specified with colors. On a color screen, this mode is simu
- lated, if this option is selected. The option is useful, if the
- VCG tool conflicts with other programs that need colors.
- -e <num> | -error <num>
- Stop after <num> errors during parsing of
- the specification (default: 16).
- -a <num> | -animation <num>
- Start the tool as animation handler. This
- implies that the tool is controlled by signals (USRSIG1, USRSIG2)
- from an external program. The signal USRSIG1 causes the VCG tool
- to open the display window and reload its input file. The signal
- USRSIG2 causes the VCG tool to close the display window. The
- tool processes the input and indicates the completion of the pro
- cessing to the controlling program. If <num> is greater 0, this
- indication is done by sleeping <num> seconds and touching the in
- put file afterwards such that its time stamp is refreshed. If
- <num> is less than 0, this indication is done by sleeping - <num>
- seconds and sending signal USRSIG1 to the caller process after
- wards.
- -m | -multi Read multiple files one after another to
- display a sequence of graphs. Instead of an exit of the tool,
- the next file is read. The option -multi must be specified be
- fore the first input file.
- -bary Use bary centering to reduce the number of
- edge crossings (default).
- -median Use median centering instead of bary cen
- tering to reduce the number of crossings. On graphs with large
- average degree of edges, bary centering might be faster.
- -barymedian Use a hybrid method to reduce the number of
- edge crossings. Bary centering is used for all nodes with dif
- ferent bary values. For nodes with same bary values, the cross
- ing reduction heuristics normally has a random effect. With this
- hybrid method, the crossing reduction of nodes with same bary
- values is done by median centering.
- -medianbary Use a hybrid method to reduce the number of
- edge crossings. Median centering is used for all nodes with dif
- ferent median values. For nodes with same median values, the
- crossing reduction heuristics normally has a random effect. With
- this hybrid method, the crossing reduction of nodes with same me
- dian values is done by bary centering.
- -notune | -nofinetune
- Switch the fine tuning layout phase off.
- Fine tuning is a postprocessing phase after partitioning of nodes
- into layers. Fine tuning changes the layers of nodes to minimize
- the length of edges. If this phase is switched off, it yield a
- less compact distribution of nodes in the levels.
- -manhattan | -orthogonal
- Switch the orthogonal manhattan layout on.
- This forces edges of gradient 0 or 90 degree. The result of this
- layout might be more aesthetical, if additionally the priority
- layout phase with straight line tuning is used. Thus, these
- phases are switched on, too, unless priority layout and straight
- line tuning is switched explicitly off.
- -nomanhattan | -noorthogonal
- Switch the orthogonal manhattan layout ex
- plicitly off.
- -smanhattan Use the orthogonal manhattan layout without
- separation of horizontal line segments. Horizontal line segments
- are shared between different edges. This looks nice for trees
- but might be confusing in general, because the location of an
- edge might be ambiguously.
- -nosmanhattan Switch the orthogonal manhattan layout
- without separation explicitly off.
- -prio Switch the priority layout on. This forces
- straight long edges with gradient 90 degree during the node
- placement phase. The straight line tuning phase can be used to
- improve the priority layout. Thus, this phase is switched on,
- too, unless straight line tuning is switched explicitly off.
- -noprio Switch the priority layout explicitly off.
- -straight Switch the straight line tuning phase on.
- This phase forces straight long edges with gradient 90 degree. It
- can be used to improve the priority layout.
- -nostraight Switch the straight line tuning phase ex
- plicitly off.
- -nonearedge Do not allow near edges in the layout.
- -l | -latelabels
- Create the labels after the partitioning of
- edges. This has only an effect if labels are shown in a nondirty
- way. If labels are created after the partitioning of edges, the
- layout will be a little bit wider and may have less crossings.
- But note that sometimes this layout may also be worser than the
- normal layout.
- -hidesingles | -ignoresingles
- Ignore single nodes (nodes without visible
- edges) that are not connected with the remaining graph. These
- nodes are sometimes not of interest, but would spread the layout
- if they were visible.
- -s | -summarize
- Switch edge summary layout on. Multiple
- edges between the same source and target node are summarized if
- they have the same visible appearance. This reduces the number
- of visible edges.
OPTIONS FOR THE LAYOUT SPEED
- The speed of the layout process can be influenced by se
- lecting time limits and iteration bounds of the different layout
- phases. Optional layout phases can completely be skipped. But
- note that we need a minimal time for each graph, in order to ini
- tialize the internal data structures. Furthermore, a fast layout
- is probably also an ugly layout.
- -t <num> | -timelimit <num>
- Set the time limit to <num> seconds of real
- time. If the time limit is exceeded, the fastest possible layout
- mode is switched on. This may yield a very ugly layout. Of
- course, a time limit does not mean that the layout really needs
- so much time: The layout may be faster, because the graph struc
- ture is very simple, or it may be slower, because even the
- fastest possible layout already exceeds the time limit. Further
- note, that the layout depends on the real time, i.e. on the load
- of the computer. Thus, given a time limit, two identical trys
- need not to give identical results.
- -f | -fast Switch the fast and dirty and ugly mode on.
- The layout phase will be very fast, but the layout will be ugly.
- This is helpful on very large graphs where aesthetic visibility
- is of minor importance. The option -fast implies -bmax 2 -cmax 2
- -pmax 2 -rmax 2 -smax 2.
- -b <num> | -bmax <num> | -bending <num>
- Set the maximal number of iterations used
- for the reduction of edge bendings to <num>. Edge bendings are
- used to avoid that edges are drawn across nodes. Reducing the
- number of iterations results in a faster but ugly layout, i.e. to
- much bendings occur. The default value is 100.
- -c <num> | -cmax <num> | -crossing <num>
- Set the maximal number of iterations used
- for the reduction of edge crossings to <num>. The edge crossing
- reduction method is called bary centering or median centering.
- These may be very time consuming on large graphs. Reducing the
- number of iterations results in a faster but ugly layout. As de
- fault, the method is iterated as long as improvements are possi
- ble.
- -cmin <num> Set the minimal number of iterations used
- for the reduction of edge crossings to <num>. The crossing re
- duction method tries to detect improvements of the layout. If an
- iteration of that method does not yield an improvment, the method
- normally stops. But this situation might be a local minimum of
- the quality of the layout, i.e. further iterations might find a
- better layout. Thus, the minimal number of iterations can be
- specified. The default value is 0.
- -p <num> | -pmax <num> | -pendulum <num>
- Set the maximal number of iterations used
- for the balancing by the pendulum method to <num>. The pendulum
- method calculates the x co-ordinates of nodes such that the lay
- out is medium dense and balanced. It tries to avoid extreme gra
- dients of edges. It works like a pendulum where the nodes are
- the balls, the edges are the strings and uppermost nodes are
- fixed on the ceiling. Reducing the number of iterations results
- in a faster but ugly layout. The default value is 100.
- -pmin <num> Set the minimal number of iterations used
- for the balancing by the pendulum method to <num>. If an itera
- tion of that method does not yield an improvment, the method nor
- mally stops. But this situation might be a local minimum of the
- quality of the layout, i.e. further iterations might find a bet
- ter layout. Thus, the minimal number of iterations can be speci
- fied. The default value is 0.
- -r <num> | -rmax <num> | -rubberband <num>
- Set the maximal number of iterations used
- for the balancing by the rubberband method to <num>. The rub
- berband method calculates the x co-ordinates of nodes such that
- the nodes are centered relatively to their incoming and outgoing
- edges. It works like a network where the edges pull on the nodes
- like rubberbands. Reducing the number of iterations results in a
- faster but ugly layout. The default value is 100.
- -rmin <num> Set the minimal number of iterations used
- for the balancing by the rubberband method to <num>. If an it
- eration of that method does not yield an improvment, the method
- normally stops. But this situation might be a local minimum of
- the quality of the layout, i.e. further iterations might find a
- better layout. Thus, the minimal number of iterations can be
- specified. The default value is 0.
- -smax <num> Set the maximal number of iterations used
- for the straight line tuning phase to <num>. This phase forces
- straight long edges with gradient 90 degree. It can be used to
- improve the priority layout or the manhattan layout.
- -nocopt | -nocopt2
- Skip the optimization phase 2 during the
- crossing reduction. This phase takes very long time on very
- large graphs. Before reducing the number of iterations of the
- crossing reduction phase (see option -cmax <num> ) you should
- first try to skip this optimization phase 2.
- -nocoptl | -nocoptlocal
- Switch a local crossing optimization off.
- This phase additionally examines pairs of edge polygons and tries
- to unwind them. It slows down if the degree of the nodes is
- large.
OPTIONS FOR THE DISTRIBUTION OF NODES
- The quality of the layout is mainly influenced by the dis
- tribution of the nodes into the hierarchy levels. Nodes of the
- same level will appear in the same row. Since it depends on the
- application which hierarchy is the best, there are different al
- gorithms for this phase.
- -d normal Normal distribution of nodes into the
- levels (default). This algorithm is based on the calculation
- of the strongly connected components.
- -d dfs Depth first search distribution of nodes
- into the levels. This is the fastest method.
- -d 0 | -d minbackward
- Reduce the number of backward edges heuris
- tically. If the graph is acyclic, no backward edges will occur,
- i.e. all edges point into the same direction.
- -d + | -d maxdepth
- Maximize the depth of the layout heuristi
- cally. It should be used if the layout is too wide in x direc
- tion. This algorithm is very fast.
- -d - | -d mindepth
- Minimize the depth of the layout heuristi
- cally. It should be used if the layout is too wide in y direc
- tion. This algorithm is very fast.
- -d ++ | -d maxdepthslow
- Maximize the depth of the layout heuristi
- cally. See above. This algorithm is very slow, but may give bet
- ter results.
- -d -- | -d mindepthslow
- Minimize the depth of the layout heuristi
- cally. See above. This algorithm is very slow, but may give bet
- ter results.
- -d minindeg | -d minindegree
- Prepare the nodes by sorting them according
- increasing indegree (number of incoming edges). The nodes with
- the minimal indegree come first. This may have various effects
- on the layout.
- -d maxindeg | -d maxindegree
- Prepare the nodes by sorting them according
- decreasing indegree. The nodes with the maximal indegree come
- first. This may have various effects on the layout.
- -d minoutdeg | -d minoutdegree
- Prepare the nodes by sorting them according
- increasing outdegree (number of outgoing edges). The nodes with
- the minimal outdegree come first. This may have various effects
- on the layout.
- -d maxoutdeg | -d maxoutdegree
- Prepare the nodes by sorting them according
- decreasing outdegree. The nodes with the maximal outdegree come
- first. This may have various effects on the layout.
- -d mindeg | -d mindegree
- Prepare the nodes by sorting them according
- increasing degree (number of incoming and outgoing edges). The
- nodes with the minimal degree come first. This may have various
- effects on the layout.
- -d maxdeg | -D maxdeg
- Prepare the nodes by sorting them according
- decreasing degree. The nodes with the maximal degree come first.
- This may have various effects on the layout.
- -d tree Use a specialized layout for trees. It does
- not work with non-trees.
OPTIONS FOR THE VIEW
- The view of a graph is the method of the visual appearance
- of the graph in the window after the layout. Changing the view
- does not require a relayout of the graph. Views are transforma
- tions that are done during the drawing.
- -view normal Normal view onto the graph. No distortion.
- -view cfish Cartesian fisheye view. The graph is dis
- torted such that the whole graph is visible. Horizontal and
- vertical lines don't change their direction.
- -view fcfish Cartesian fisheye view with fixed size fo
- cus. The graph is distorted, but not necessarily the whole graph
- is visible.
- -view pfish Polar fisheye view. The graph is distort
- ed such that the whole graph is visible. Even horizontal and
- vertical lines might be distorted.
- -view fpfish Polar fisheye view with fixed size fo
- cus. The graph is distorted, but not necessarily the whole
- graph is visible.
- -spline Use splines instead of polygons to draw
- edges. This is mainly useful if you want to export the graph into
- a high quality PostScript picture. WARNING: Drawing splines is
- very slow.
- -nonodes Suppress drawing of nodes.
- -noedges Suppress drawing of edges.
- -xpos <num> Set the x-coordinate of the initial point
- of the graph that appears at the window origin or of the initial
- focus point to <num>.
- -ypos <num> Set the y-coordinate of the initial point
- of the graph that appears at the window origin or of the initial
- focus point to <num>.
PRINTER DRIVER INTERFACE
- The printer driver interface allows to produce an output
- file of the visualized graph without the need of interaction.
- The VCG tool acts as a kind of converter program in this case: it
- converts a VCG file into a PostScript or bitmap file. It is rec
- ommended to use the option -silent in combination to one of the
- options -vcgoutput, -psoutput, -pbmoutput, or -ppmoutput. Exam
- ple:
- xvcg -silent -color -scale 75 -psoutput test.ps test.vcg
- converts the VCG file test.vcg into a PostScript file that
- contains a color picture of the graph scaled by 75 %. In this
- case the interactive display is suppressed. If the graph does
- not fit on the page, the output might be nonsense.
PRINTER DRIVER OPTIONS
- -vcgoutput <filename>
- Produce a VCG file named <filename> that
- contains the graph laid out, i.e. including information about the
- co-ordinates of the visible nodes. The most of the following
- format options have no effect for the VCG file format.
- -psoutput <filename>
- Produce a PostScript file named <filename>
- that contains the graph.
- -pbmoutput <filename>
- Produce a bitmap file named <filename> in
- PBM format that contains the graph in black and white.
- -ppmoutput <filename>
- Produce a bitmap file named <filename> in
- PPM format that contains the graph in colors.
- -paper <papertype>
- Select the paper type. Default is a4.
- <papertype> is one of:
- a4 din A4 (21 x 30 cm)
A4 din A4 (21 x 30 cm)
b5 din B5 (18.5 x 27 cm)
B5 din B5 (18.5 x 27 cm)
a5 din A5 (15 x 21 cm)
A5 din A5 (15 x 21 cm)
11x17 tabloid (11 x 17 in)
tabloid tabloid (11 x 17 in)
8x11 letter (8.5 x 11 in)
letter letter (8.5 x 11 in)
8x14 legal (8.5 x 14 in)
legal legal (8.5 x 14 in) - -noBoundingBox Suppress the calculation of a BoundingBox
- (PostScript format).
- -color Select a color file output. This option
- works only with the PostScript format.
- -grey Select a greyscaled file output. This op
- tion works only with the PostScript format.
- -blackwhite Select a monochromatic file output. This
- is the default color. This option works only with the PostScript
- format.
- -portrait Select the paper orientation `Portrait'
- (default).
- -landscape Select the paper orientation `Landscape'.
- -split <num> Split the graph into <num> pages. This op
- tion works only with the PostScript format. The number of pages
- must be one of 1, 4, 9, 16, or 25.
- -xdpi <num> Set the horizontal resolution for the PPM
- and PBM format. This allows to adapt the bitmap formats to the
- resolutions of the printer.
- -ydpi <num> Set the vertical resolution for the PPM and
- PBM format. This allows to adapt the bitmap formats to the reso
- lutions of the printer.
- -scale <num> Scale the graph to <num> percent for the
- file output. The default scaling fits the graph with maximal as
- pect ratio to the paper size.
- -width <float> <units>
- Fit the graph such that its width is small
- er than <float> <units>. This works only if no scaling is speci
- fied. <units> are:
- in Inches
inch Inches
ft Foot
foot Foot
feet Foot
mm Millimeter
cm Centimeter
dm Decimeter
m Meter - -height <float> <units>
- Fit the graph such that its height is
- smaller than <float> <units>. This works only if no scaling is
- specified.
- -lm <float> <units>
- Set the left margin of the output to
- <float> <units>. This works only if no right margin is speci
- fied. The default position is centered on the page. In some
- cases the BoundingBox of the PostScript output meight be wrong.
- If a BoundingBox is needed then we recommend the options -lm 0
- cm -bm 0 cm.
- -rm <float> <units>
- Set the right margin of the output to
- <float> <units>. This works only if no left margin is specified.
- The default position is centered on the page.
- -tm <float> <units>
- Set the top margin of the output to <float>
- <units>. This works only if no bottom margin is specified. The
- default position is centered on the page.
- -bm <float> <units>
- Set the bottom margin of the output to
- <float> <units>. This works only if no top margin is specified.
- The default position is centered on the page.
X11 OPTIONS
- -display <host:dpy>
- Set the remote X11 server to host:dpy.
- This is analogous to xterm(1l).
- -geometry <geom>
- Specify the hint of size and location of
- the X11 window. This is analogous to xterm(1l).
- -bw <num> Set the border width of the X11 window to
- <num> pixels. This is analogous to xterm(1l).
- -font <xfont> Set the font used for messages and menu
- items in the X11 window. This is analogous to xterm(1l).
- -grabinputfocus
- Switch setting of InputFocus on or off (de
- pending on the default). Cause the VCG tool to execute a XSet
- InputFocus, or to avoid to execute a XSetInputFocus on initial
- ization.
GRAMMAR
- The grammar of the specification language is the follow
- ing:
- graph
- ::= "graph:" '{' graph_entry_list '}'
; - graph_entry_list
- ::= graph_entry_list graph_entry
| graph_entry
; - graph_entry
- ::= graph_attribute
| node_defaults
| edge_defaults
| foldnode_defaults
| foldedge_defaults
| graph
| node
| edge
| nearedge
| bentnearedge
| backedge
; - graph_attribute
- ::= "title" ':' string
| "label" ':' string
| "info1" ':' string
| "info2" ':' string
| "info3" ':' string
| "color" ':' enum_color
| "textcolor" ':'enum_color
| "bordercolor" ':'enum_color
| "width" ':' integer
| "height" ':' integer
| "borderwidth" ':' integer
| 'x' ':' integer
| 'y' ':' integer
| "loc:" '{' 'x' ':' integer 'y' ':' integer '}'
| "folding" ':' integer
| "scaling" ':' float
| "shrink" ':' integer
| "stretch" ':' integer
| "textmode" ':' enum_textmode
| "shape" ':' enum_shape
| "level" ':' integer
| "vertical_order" ':' integer
| "horizontal_order" ':' integer
| "status" ':' enum_status
| "xmax" ':' integer
| "ymax" ':' integer
| "xbase" ':' integer
| "ybase" ':' integer
| "xspace" ':' integer
| "xlspace" ':' integer
| "yspace" ':' integer
| "xraster" ':' integer
| "xlraster" ':' integer
| "yraster" ':' integer
| "invisible" ':' integer
| "hidden" ':' integer
| "classname" integer ':' string
| "infoname" integer ':' string
| "colorentry" integer ':' integer integer integer
| "layoutalgorithm" ':' enum_layoutalgorithm
| "layout_downfactor" ':' integer
| "layout_upfactor" ':' integer
| "layout_nearfactor" ':' integer
| "splinefactor" ':' integer
| "late_edge_labels" ':' enum_yes_no
| "display_edge_labels" ':' enum_yes_no
| "dirty_edge_labels" ':' enum_yes_no
| "finetuning" ':' enum_yes_no
| "ignoresingles" ':' enum_yes_no
| "straight_phase" ':' enum_yes_no
| "priority_phase" ':' enum_yes_no
| "manhattan_edges" ':' enum_yes_no
| "smanhattan_edges" ':' enum_yes_no
| "nearedges" ':' enum_yes_no
| "orientation" ':' enum_orientation
| "node_alignment" ':' enum_node_align
| "port_sharing" ':' enum_yes_no
| "arrowmode" ':' enum_arrow_mode
| "spreadlevel" ':' integer
| "treefactor" ':' float
| "crossingphase2" ':' enum_yes_no
| "crossingoptimization" ':' enum_yes_no
| "crossingweight" ':' enum_cross_weight
| "view" ':' enum_view
| "edges" ':' enum_yes_no
| "nodes" ':' enum_yes_no
| "splines" ':' enum_yes_no
| "bmax" ':' integer
| "cmax" ':' integer
| "cmin" ':' integer
| "pmax" ':' integer
| "pmin" ':' integer
| "rmax" ':' integer
| "rmin" ':' integer
| "smax" ':' integer
; - enum_color
- ::= "aquamarine"
| "black"
| "blue"
| "cyan"
| "darkblue"
| "darkcyan"
| "darkgreen"
| "darkgrey"
| "darkmagenta"
| "darkred"
| "darkyellow"
| "gold"
| "green"
| "khaki"
| "lightblue"
| "lightcyan"
| "lightgreen"
| "lightgrey"
| "lightmagenta"
| "lightred"
| "lightyellow"
| "lilac"
| "magenta"
| "orange"
| "orchid"
| "pink"
| "purple"
| "red"
| "turquoise"
| "white"
| "yellow"
| "yellowgreen"
| integer
; - enum_orientation
- ::= "top_to_bottom"
| "bottom_to_top"
| "left_to_right"
| "right_to_left"
; - enum_layoutalgorithm
- ::=
| "tree"
| "maxdepth"
| "mindepth"
| "maxdepthslow"
| "mindepthslow"
| "maxdegree"
| "mindegree"
| "maxindegree"
| "minindegree"
| "maxoutdegree"
| "minoutdegree"
| "minbackward"
| "dfs"
; - enum_status
- ::= "black"
| "grey"
| "white"
; - enum_yes_no
- ::= "yes"
| "no"
; - enum_cross_weight
- ::= "bary"
| "median"
| "barymedian"
| "medianbary"
; - enum_view
- ::= "cfish"
| "fcfish"
| "pfish"
| "fpfish"
; - enum_arrow_mode
- ::= "fixed"
| "free"
; - foldnode_defaults
- ::= "foldnode." node_attribute
; - foldedge_defaults
- ::= "foldedge." edge_attribute
; - node_defaults
- ::= "node." node_attribute
; - edge_defaults
- ::= "edge." edge_attribute
; - node ::= "node:" '{' node_attribute_list '}'
- ;
- node_attribute_list
- ::= node_attribute_list node_attribute
| node_attribute
; - edge ::= "edge:" '{' edge_attribute_list '}'
- ;
- nearedge
- ::= "nearedge:" '{' edge_attribute_list '}'
; - bentnearedge
- ::= "bentnearedge:" '{' edge_attribute_list '}'
; - backedge
- ::= "backedge:" '{' edge_attribute_list '}'
; - edge_attribute_list
- ::= edge_attribute_list edge_attribute
| edge_attribute
; - node_attribute
- ::= "title" ':' string
| "label" ':' string
| "info1" ':' string
| "info2" ':' string
| "info3" ':' string
| "color" ':' enum_color
| "textcolor" ':'enum_color
| "bordercolor" ':'enum_color
| "width" ':' integer
| "height" ':' integer
| "borderwidth" ':' integer
| "loc:" '{' 'x' ':' integer 'y' ':' integer '}'
| "folding" ':' integer
| "scaling" ':' float
| "shrink" ':' integer
| "stretch" ':' integer
| "textmode" ':' enum_textmode
| "shape" ':' enum_shape
| "level" ':' integer
| "vertical_order" ':' integer
| "horizontal_order" ':' integer
; - enum_textmode
- ::= "center"
| "left_justify"
| "right_justify"
; - enum_shape
- ::= "box"
| "rhomb"
| "ellipse"
| "triangle"
; - enum_node_align
- ::= "bottom"
| "top"
| "center"
; - edge_attribute
- ::= "sourcename" ':' string
| "targetname" ':' string
| "label" ':' string
| "textcolor" ':'enum_color
| "color" ':' enum_color
| "thickness" ':' integer
| "class" ':' integer
| "priority" ':' integer
| "arrowcolor" ':' enum_color
| "backarrowcolor" ':' enum_color
| "arrowsize" ':' integer
| "backarrowsize" ':' integer
| "arrowstyle" ':' enum_arrowstyle
| "backarrowstyle" ':' enum_arrowstyle
| "linestyle" ':' enum_linestyle
| "anchor" ':' integer
| "horizontal_order" ':' integer
; - enum_linestyle
- ::= "continuous"
| "solid"
| "dotted"
| "dashed"
| "invisible"
; - enum_arrowstyle
- ::= none
| line
| solid
;
WARNINGS
- The VCG tool needs about 200 bytes per edge and node. De
- pending on the layout, it will produce a lot of additional dummy
- nodes and dummy edges, such that it may run out of memory. The
- layout algorithm needs exponentially time in the worst case.
ACKNOWLEDGEMENTS
- The Edge tool was developed at the University of Karl
- sruhe. GRL was described by S. Manke and F.N. Paulisch.
Our colleagues M. Alt and C. Ferdinand found the most bugs - and gave many proposals for improvements.
The Institute of Compiler Construction at the University - of Saarland, Germany, and the COMPARE Consortium were the first
- and most important users of the VCG tool and gave us the motiva
- tion, the time and many hints during the development of the tool.
SEE ALSO
- Sunview(1) X11(1l) edge(l)
vcgdemomaker(l) pbmshift(l) pbmrot90(l) pbm2hp(l)
VCG - Visualization of Compiler Graphs, Design Report and - User Documentation, Ref. Compare, USAAR-1049-visual, January
- 1994, updated January 1995
BUGS
- The X11 version has the `InputFocus' problem. This prob
- lem is solved for 99 % of all cases, but may still occur.
If a graph is written to a file and reload from this file, - the layout may be different and may be ugly.
The attribute horizontal_order does only works for con - nected graphs, but not for unconnected graphs.
For some parameters, negative values are inappropriate - even if the tool does not crashes in such situations. However
- the result will be very ugly. For instance, the values of xbase
- and ybase should always be greater than zero.
The spline routine is still too slow and has some bugs - when exporting to a multi page PostScript file.
Currently, no further bugs are known.
AUTHORS
- Georg Sander, University of Saarland, Germany.
Iris Lemke, University of Saarland, Germany. - Release 1.3 1995/01/05