NAME
Gfsm::Automaton::Indexed - libgfsm finite-state automata, indexed
SYNOPSIS
use Gfsm;
##------------------------------------------------------------
## Constructors, etc.
$xfsm = Gfsm::Automaton::Indexed->new();
$xfsm = Gfsm::Automaton::Indexed->new($is_transducer,$srtype,$n_states,$n_arcs);
$xfsm2 = $xfsm->clone(); # copy constructor
$xfsm2->assign($xfsm1); # assigns $fsm1 to $fsm2
$xfsm->clear(); # clear automaton structure
##--------------------------------------------------------------
## Import & Export
$fsm = $xfsm->to_automaton(); # convert Gfsm::Automaton::Indexed -> Gfsm::Automaton
$xfsm = $fsm->to_indexed(); # convert Gfsm::Automaton -> Gfsm::Automaton::Indexed
##------------------------------------------------------------
## Accessors/Manipulators: Properties
$bool = $xfsm->is_transducer(); # get 'is_transducer' flag
$bool = $xfsm->is_transducer($bool); # ... or set it
$bool = $xfsm->is_weighted(?$bool); # get/set 'is_weighted' flag
$mode = $xfsm->sort_mode(?$mode); # get/set sort-mode flag (dangerous)
$bool = $xfsm->is_deterministic(?$bool); # get/set 'is_deterministic' flag (dangerous)
$srtype = $xfsm->semiring_type(?$srtype); # get/set semiring type
$n = $xfsm->n_states(); # get number of states
$n = $xfsm->n_arcs(); # get number of arcs
$id = $xfsm->root(?$id); # get/set id of initial state
$bool = $xfsm->has_state($id); # check whether a state exists
##------------------------------------------------------------
## Accessors/Manipulators: States
$id = $xfsm->add_state(); # add a new state
$id = $xfsm->ensure_state($id); # ensure that a state exists
$xfsm->remove_state($id); # remove a state from an FSM (currently does nothing)
$bool = $xfsm->is_final($id,?$bool); # get/set final-flag for state $id
$deg = $xfsm->out_degree($id); # get number of outgoing arcs for state $id
$w = $xfsm->final_weight($id,?$w); # get/set final weight for state $id
##------------------------------------------------------------
## Accessors/Manipulators: Arcs
$fsm->arcsort($fsm,$mode); # sort automaton arcs
##-- TODO: arc range iterator access!
##--------------------------------------------------------------
## I/O
$bool = $xfsm->load($filename_or_handle); # load binary file
$bool = $xfsm->save($filename_or_handle); # save binary file
$bool = $xfsm->load_string($buffer); # load from in-memory buffer $string
$bool = $xfsm->save_string($buffer); # save to in-memory buffer $string
$bool = $xfsm->viewps(%options); # for debugging (uses to_automaton())
DESCRIPTION
Not yet written.
BUGS AND LIMITATIONS
Probably many.
SEE ALSO
Gfsm(3perl), Gfsm::Automaton(3perl), gfsmutils(1).
AUTHOR
Bryan Jurish <moocow@cpan.org>
COPYRIGHT AND LICENSE
Copyright (C) 2005-2008 by Bryan Jurish
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.14.2 or, at your option, any later version of Perl 5 you may have available.