NAME
Graph::Easy::Parser::VCG - Parse VCG or GDL text into Graph::Easy
SYNOPSIS
# creating a graph from a textual description
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"
);
$graph
->as_ascii();
$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 overridden 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()
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 occurred.
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.