packages icon



 VCG | XVCG(1l)                  Release 1.3                  VCG | XVCG(1l)
                                 1995/01/05



 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 specified 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 simulated, 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



                                    - 1 -           Formatted:  June 5, 2020






 VCG | XVCG(1l)                  Release 1.3                  VCG | XVCG(1l)
                                 1995/01/05



                     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 processing to the
                     controlling program.  If <num> is greater 0, this
                     indication is done by sleeping <num> seconds and
                     touching the input 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
                     afterwards.

      -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 before the first input file.

      -bary          Use bary centering to reduce the number of edge
                     crossings (default).

      -median        Use median centering instead of bary centering 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
                     different bary values.  For nodes with same bary
                     values, the crossing 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
                     different 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 median 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



                                    - 2 -           Formatted:  June 5, 2020






 VCG | XVCG(1l)                  Release 1.3                  VCG | XVCG(1l)
                                 1995/01/05



                     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 explicitly 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 explicitly 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.




                                    - 3 -           Formatted:  June 5, 2020






 VCG | XVCG(1l)                  Release 1.3                  VCG | XVCG(1l)
                                 1995/01/05



      -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 selecting 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 initialize 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 structure 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

      -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 default, the method is
                     iterated as long as improvements are possible.




                                    - 4 -           Formatted:  June 5, 2020






 VCG | XVCG(1l)                  Release 1.3                  VCG | XVCG(1l)
                                 1995/01/05



      -cmin <num>    Set the minimal number of iterations used for the
                     reduction of edge crossings to <num>. The crossing
                     reduction 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 layout is medium dense and balanced. It
                     tries to avoid extreme gradients 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
                     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.

      -r <num> | -rmax <num> | -rubberband <num>
                     Set the maximal number of iterations used for the
                     balancing  by the rubberband method to <num>. The
                     rubberband 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
                     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.

      -smax <num>    Set the maximal number of iterations used for the
                     straight  line tuning phase to <num>. This phase forces



                                    - 5 -           Formatted:  June 5, 2020






 VCG | XVCG(1l)                  Release 1.3                  VCG | XVCG(1l)
                                 1995/01/05



                     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 distribution 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 algorithms 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 heuristically. 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 heuristically.  It
                     should be used if the layout is too wide in x
                     direction.  This algorithm is very fast.

      -d - | -d mindepth
                     Minimize the depth of the layout heuristically.  It
                     should be used if the layout is too wide in y
                     direction.  This algorithm is very fast.

      -d ++ | -d maxdepthslow
                     Maximize the depth of the layout heuristically. See
                     above.  This algorithm is very slow, but may give
                     better results.



                                    - 6 -           Formatted:  June 5, 2020






 VCG | XVCG(1l)                  Release 1.3                  VCG | XVCG(1l)
                                 1995/01/05



      -d -- | -d mindepthslow
                     Minimize the depth of the layout heuristically. See
                     above.  This algorithm is very slow, but may give
                     better 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 transformations that are
      done during the drawing.

      -view normal   Normal view onto the graph. No distortion.





                                    - 7 -           Formatted:  June 5, 2020






 VCG | XVCG(1l)                  Release 1.3                  VCG | XVCG(1l)
                                 1995/01/05



      -view cfish    Cartesian fisheye view.  The graph is  distorted  such
                     that the whole graph is visible.  Horizontal  and
                     vertical lines don't change their direction.

      -view fcfish   Cartesian fisheye view with fixed size focus.  The
                     graph is distorted, but not necessarily the whole graph
                     is visible.

      -view pfish    Polar fisheye view.  The graph is  distorted  such that
                     the whole graph is visible.  Even horizontal and
                     vertical lines might be distorted.

      -view fpfish   Polar fisheye view  with  fixed size  focus.  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 recommended to use the option
      -silent in combination to one of the options -vcgoutput, -psoutput,
      -pbmoutput, or -ppmoutput. Example:

      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.






                                    - 8 -           Formatted:  June 5, 2020






 VCG | XVCG(1l)                  Release 1.3                  VCG | XVCG(1l)
                                 1995/01/05



 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 option 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.





                                    - 9 -           Formatted:  June 5, 2020






 VCG | XVCG(1l)                  Release 1.3                  VCG | XVCG(1l)
                                 1995/01/05



      -portrait      Select the paper orientation `Portrait' (default).

      -landscape     Select the paper orientation `Landscape'.

      -split <num>   Split the graph into <num> pages.  This option 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
                     resolutions of the printer.

      -scale <num>   Scale the graph to <num> percent for the file output.
                     The default scaling fits the graph with maximal aspect
                     ratio to the paper size.

      -width <float> <units>
                     Fit the graph such that its width is smaller than
                     <float> <units>. This works only if no scaling is
                     specified.  <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 specified. 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



                                   - 10 -           Formatted:  June 5, 2020






 VCG | XVCG(1l)                  Release 1.3                  VCG | XVCG(1l)
                                 1995/01/05



                     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 (depending on
                     the default).  Cause the VCG tool to execute a
                     XSetInputFocus, or to avoid to execute a XSetInputFocus
                     on initialization.



 GRAMMAR
      The grammar of the specification language is the following:

      graph
           ::=  "graph:" '{' graph_entry_list '}'
           ;

      graph_entry_list
           ::=  graph_entry_list graph_entry
           | graph_entry
           ;

      graph_entry
           ::=  graph_attribute
           | node_defaults



                                   - 11 -           Formatted:  June 5, 2020






 VCG | XVCG(1l)                  Release 1.3                  VCG | XVCG(1l)
                                 1995/01/05



           | 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



                                   - 12 -           Formatted:  June 5, 2020






 VCG | XVCG(1l)                  Release 1.3                  VCG | XVCG(1l)
                                 1995/01/05



           | "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"



                                   - 13 -           Formatted:  June 5, 2020






 VCG | XVCG(1l)                  Release 1.3                  VCG | XVCG(1l)
                                 1995/01/05



           | "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"



                                   - 14 -           Formatted:  June 5, 2020






 VCG | XVCG(1l)                  Release 1.3                  VCG | XVCG(1l)
                                 1995/01/05



           ;

      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
           ;





                                   - 15 -           Formatted:  June 5, 2020






 VCG | XVCG(1l)                  Release 1.3                  VCG | XVCG(1l)
                                 1995/01/05



      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"
           ;





                                   - 16 -           Formatted:  June 5, 2020






 VCG | XVCG(1l)                  Release 1.3                  VCG | XVCG(1l)
                                 1995/01/05



      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.  Depending on
      the layout, it will produce a lot of additional dummy nodes and dummy



                                   - 17 -           Formatted:  June 5, 2020






 VCG | XVCG(1l)                  Release 1.3                  VCG | XVCG(1l)
                                 1995/01/05



      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 Karlsruhe.  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 motivation, 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 problem 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 connected 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.












                                   - 18 -           Formatted:  June 5, 2020