Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
GraphViz2::Parse::STT(User Contributed Perl DocumentatGraphViz2::Parse::STT(3)

NAME
       GraphViz2::Parse::STT - Visualize a Set::FA::Element state transition
       table as	a graph

Synopsis
	       #!/usr/bin/env perl

	       use strict;
	       use warnings;

	       use File::Spec;

	       use GraphViz2;
	       use GraphViz2::Parse::STT;

	       use Log::Handler;

	       use File::Slurp;	# For read_file().

	       # ------------------------------------------------

	       my($logger) = Log::Handler -> new;

	       $logger -> add
		       (
			screen =>
			{
				maxlevel       => 'debug',
				message_layout => '%m',
				minlevel       => 'error',
			}
		       );

	       my($graph)  = GraphViz2 -> new
		       (
			edge   => {color => 'grey'},
			global => {directed => 1},
			graph  => {rankdir => 'TB'},
			logger => $logger,
			node   => {color => 'green', shape => 'oval'},
		       );
	       my($g)  = GraphViz2::Parse::STT -> new(graph => $graph);
	       my $stt = read_file(File::Spec -> catfile('t', 'sample.stt.1.dat') );

	       $g -> create(stt	=> $stt);

	       my($format)	= shift	|| 'svg';
	       my($output_file)	= shift	|| File::Spec -> catfile('html', "parse.stt.$format");

	       $graph -> run(format => $format,	output_file => $output_file);

       See scripts/parse.stt.pl	("Scripts Shipped with this Module" in
       GraphViz2).

       Note: t/sample.stt.2.dat	is output from Graph::Easy::Marpa::DFA V 0.70,
       and can be used instead of t/sample.stt.1.dat in	the above code.

Description
       Takes a Set::FA::Element-style state transition table and converts it
       into a graph.

       You can write the result	in any format supported	by Graphviz
       <http://www.graphviz.org/>.

       Here is the list	of output formats
       <http://www.graphviz.org/content/output-formats>.

Distributions
       This module is available	as a Unix-style	distro (*.tgz).

       See <http://savage.net.au/Perl-modules/html/installing-a-module.html>
       for help	on unpacking and installing distros.

Installation
       Install GraphViz2 as you	would for any "Perl" module:

       Run:

	       cpanm GraphViz2

       or run:

	       sudo cpan GraphViz2

       or unpack the distro, and then either:

	       perl Build.PL
	       ./Build
	       ./Build test
	       sudo ./Build install

       or:

	       perl Makefile.PL
	       make (or	dmake or nmake)
	       make test
	       make install

Constructor and	Initialization
   Calling new()
       "new()" is called as "my($obj) =	GraphViz2::Parse::STT -> new(k1	=> v1,
       k2 => v2, ...)".

       It returns a new	object of type "GraphViz2::Parse::STT".

       Key-value pairs accepted	in the parameter list:

       o graph => $graphviz_object
	   This	option specifies the GraphViz2 object to use. This allows you
	   to configure	it as desired.

	   The default is GraphViz2 -> new. The	default	attributes are the
	   same	as in the synopsis, above, except for the logger of course,
	   which defaults to ''.

	   This	key is optional.

Methods
   create(stt => $state_transition_table)
       Creates the graph, which	is accessible via the graph() method, or via
       the graph object	you passed to new().

       Returns $self for method	chaining.

       $state_transition_table is a list of arrayrefs, each with 3 elements.

       That is,	it is the contents of the arrayref 'transitions', which	is one
       of the keys in the parameter list to Set::FA::Element's new().

       A quick summary of each element of this list, where each	element	is an
       arrayref	with 3 elements:

       o [0] A state name
       o [1] A regexp
       o [2] Another state name	(which may be the same as the first)

       The DFA in Set::FA::Element tests the 'current' state against the state
       name ([0]), and for each	state name which matches, tests	the regexp
       ([1]) against the next character	in the input stream. The first regexp
       to match	causes the DFA to transition to	the state named	in the 3rd
       element of the arrayref ([2]).

       See t/sample.stt.1.dat for an example.

   graph()
       Returns the graph object, either	the one	supplied to new() or the one
       created during the call to new().

FAQ
       See "FAQ" in GraphViz2 and "Scripts Shipped with	this Module" in
       GraphViz2.

Thanks
       Many thanks are due to the people who chose to make Graphviz
       <http://www.graphviz.org/> Open Source.

       And thanks to Leon Brocard <http://search.cpan.org/~lbrocard/>, who
       wrote GraphViz, and kindly gave me co-maint of the module.

Version	Numbers
       Version numbers < 1.00 represent	development versions. From 1.00	up,
       they are	production versions.

Machine-Readable Change	Log
       The file	Changes	was converted into Changelog.ini by
       Module::Metadata::Changes.

Support
       Email the author, or log	a bug on RT:

       <https://rt.cpan.org/Public/Dist/Display.html?Name=GraphViz2>.

Author
       GraphViz2 was written by	Ron Savage _ron@savage.net.au_ in 2011.

       Home page: <http://savage.net.au/index.html>.

Copyright
       Australian copyright (c)	2011, Ron Savage.

	       All Programs of mine are	'OSI Certified Open Source Software';
	       you can redistribute them and/or	modify them under the terms of
	       The Perl	License, a copy	of which is available at:
	       http://dev.perl.org/licenses/

perl v5.24.1			  2017-05-11	      GraphViz2::Parse::STT(3)

NAME | Synopsis | Description | Distributions | Installation | Constructor and Initialization | Methods | FAQ | Thanks | Version Numbers | Machine-Readable Change Log | Support | Author | Copyright

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=GraphViz2::Parse::STT&sektion=3&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help