Brendt Wohlberg > XML-DTD > XML::DTD::Automaton

Download:
XML-DTD-0.10.tar.gz

Dependencies

Annotate this POD

CPAN RT

Open  0
View/Report Bugs
Module Version: 0.09   Source  

NAME ^

XML::DTD::Automaton - Perl module representing a finite automaton

SYNOPSIS ^

  use XML::DTD::Automaton;

  my $fsa = XML::DTD::Automaton->new;
  my $idxa = $fsa->mkstate('state label A');
  my $idxb = $fsa->mkstate('state label B');
  $fsa->mktrans($idxa, $idxb, 'transition symbol');

ABSTRACT ^

  XML::DTD::Automaton is a Perl module representing a finite automaton.

DESCRIPTION ^

  XML::DTD::Automaton is a Perl module representing a finite
  automaton. The following methods are provided.
new
 my $fsa = XML::DTD::Automaton->new;

Construct a new XML::DTD::Automaton object

isa
  if (XML::DTD::Automaton->isa($atd)) {
  ...
  }

Test object type

state
 my $idx = $fsa->mkstate('state label');
 my $state = $fsa->state($idx);

Get an XML::DTD::FAState object reference from a state index

index
 my $state = $fsa->state($idx0);
 ...
 my $idx1 = $fsa->index($state);

Get a state index from an XML::DTD::FAState object reference

final
 my $flg = $fsa->final($idx);

Determine whether a state is marked final

setfinal
 $fsa->setfinal($idx);

Mark a state as final

mkstate
 my $idxa = $fsa->mkstate('state label A');
 my $idxb = $fsa->mkstate('state label B', 1); # A final state

Construct a new state

mktrans
 $fsa->mktrans($idxa, $idxb, 'transition symbol');
 $fsa->mktrans($idxa, $idxb, ''); # An epsilon transition

Construct a new transition

rmtrans
 $fsa->rmtrans($idxa, $idxb, 'transition symbol');

Remove a transition

epselim
 $fsa->epselim;

Eliminate epsilon transitions

rmunreach
 $fsa->rmunreach;

Remove unreachable states

isdeterministic
 if ($fsa->isdeterministic) {
 ...
 }

Determine with the automaton is deterministic

accept
 if ($fsa->accept(['a', 'a', 'b', 'c', 'a'])) {
 ...
 }

If the automaton is deterministic, determine whether the symbol sequence is accepted

string
 print $fsa->string;

Construct a string representation of the automaton

writexml
  $xo = new XML::Output({'fh' => *STDOUT});
  $fsa->writexml($xo);

Write an XML representation of the automaton

SEE ALSO ^

XML::DTD::FAState

AUTHOR ^

Brendt Wohlberg <wohl@cpan.org>

COPYRIGHT AND LICENSE ^

Copyright (C) 2006,2010 by Brendt Wohlberg

This library is available under the terms of the GNU General Public License (GPL), described in the GPL file included in this distribution.

syntax highlighting: