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


XML-DTD documentation  | view source Contained in the XML-DTD distribution.

Index


NAME

Top

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

SYNOPSIS

Top

  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

Top

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

DESCRIPTION

Top

  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

Top

XML::DTD::FAState

AUTHOR

Top

Brendt Wohlberg <wohl@cpan.org>

COPYRIGHT AND LICENSE

Top


XML-DTD documentation  | view source Contained in the XML-DTD distribution.