Provided by: libgraph-easy-perl_0.75-2_all bug

NAME

       Graph::Easy::Parser::VCG - Parse VCG or GDL text into Graph::Easy

SYNOPSIS

               # creating a graph from a textual description

               use Graph::Easy::Parser::VCG;
               my $parser = Graph::Easy::Parser::VCG->new();

               my $graph = $parser->from_text(
                       "graph: { \n" .
                       "       node: { title: "Bonn" }\n" .
                       "       node: { title: "Berlin" }\n" .
                       "       edge: { sourcename: "Bonn" targetname: "Berlin" }\n" .
                       "}\n"
               );
               print $graph->as_ascii();

               print $parser->from_file('mygraph.vcg')->as_ascii();

DESCRIPTION

       "Graph::Easy::Parser::VCG" parses the text format from the VCG or GDL (Graph Description
       Language) use by tools like GCC and AiSee, and constructs a "Graph::Easy" object from it.

       The resulting object can then be used to layout and output the graph in various formats.

   Output
       The output will be a Graph::Easy object (unless overrriden with "use_class()"), see the
       documentation for Graph::Easy what you can do with it.

   Attributes
       Attributes will be remapped to the proper Graph::Easy attribute names and values, as much
       as possible.

       Anything else will be converted to custom attributes starting with "x-vcg-".  So
       "dirty_edge_labels: yes" will become "x-vcg-dirty_edge_labels: yes".

METHODS

       "Graph::Easy::Parser::VCG" supports the same methods as its parent class
       "Graph::Easy::Parser":

   new()
               use Graph::Easy::Parser::VCG;
               my $parser = Graph::Easy::Parser::VCG->new();

       Creates a new parser object. There are two valid parameters:

               debug
               fatal_errors

       Both take either a false or a true value.

               my $parser = Graph::Easy::Parser::VCG->new( debug => 1 );
               $parser->from_text('graph: { }');

   reset()
               $parser->reset();

       Reset the status of the parser, clear errors etc. Automatically called when you call any
       of the "from_XXX()" methods below.

   use_class()
               $parser->use_class('node', 'Graph::Easy::MyNode');

       Override the class to be used to constructs objects while parsing.

       See Graph::Easy::Parser for further information.

   from_text()
               my $graph = $parser->from_text( $text );

       Create a Graph::Easy object from the textual description in $text.

       Returns undef for error, you can find out what the error was with error().

       This method will reset any previous error, and thus the $parser object can be re-used to
       parse different texts by just calling "from_text()" multiple times.

   from_file()
               my $graph = $parser->from_file( $filename );
               my $graph = Graph::Easy::Parser::VCG->from_file( $filename );

       Creates a Graph::Easy object from the textual description in the file $filename.

       The second calling style will create a temporary parser object, parse the file and return
       the resulting "Graph::Easy" object.

       Returns undef for error, you can find out what the error was with error() when using the
       first calling style.

   error()
               my $error = $parser->error();

       Returns the last error, or the empty string if no error occured.

   parse_error()
               $parser->parse_error( $msg_nr, @params);

       Sets an error message from a message number and replaces embedded templates like
       "##param1##" with the passed parameters.

CAVEATS

       The parser has problems with the following things:

       attributes  Some attributes are not remapped properly to what Graph::Easy expects, thus
                   losing information, either because Graph::Easy doesn't support this feature
                   yet, or because the mapping is incomplete.

       comments    Comments written in the source code itself are discarded. If you want to have
                   comments on the graph, clusters, nodes or edges, use the attribute "comment".
                   These are correctly read in and stored, and then output into the different
                   formats, too.

EXPORT

       Exports nothing.

SEE ALSO

       Graph::Easy, Graph::Write::VCG.

AUTHOR

       Copyright (C) 2005 - 2008 by Tels <http://bloodgate.com>

       See the LICENSE file for information.