The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Gfsm::Alphabet - object-oriented interface to libgfsm string alphabets.

SYNOPSIS

 use Gfsm;

 ##------------------------------------------------------------
 ## Constructors, etc.
 $abet = Gfsm::Alphabet->new(); # construct a new alphabet
 $abet->clear();                # empty the alphabet

 ##--------------------------------------------------------------
 ## Alphabet properties
 $lab  = $abet->lab_min();      # get first allocated LabelId
 $lab  = $abet->lab_max();      # get last allocated LabelId
 $n    = $abet->size();         # get number of defined labels
 $bool = $abet->utf8(?$bool);   # get/set alphabet UTF-8 flag

 ##--------------------------------------------------------------
 ## Lookup & Manipulation
 $lab = $abet->insert($key);       # insert a key string
 $lab = $abet->insert($key,$lab);  # insert a key string, requesting label $lab
 
 $lab = $abet->get_label($key);    # get or insert label for $key
 $lab = $abet->find_label($key);   # get label for $key, else Gfsm::noLabel
 
 $key = $abet->find_key($lab);     # get key for label, else undef
 
 $abet->remove_key($key);          # remove a key, if defined
 $abet->remove_label($lab);        # remove a label, if defined
 
 $abet->merge($abet2);             # add $abet2 keys to $abet1
 $labs = $abet->labels();          # get array-ref of all labels in $abet

 ##--------------------------------------------------------------
 ## I/O
 $abet->load($filename_or_handle); # load AT&T-style .lab file
 $abet->save($filename_or_handle); # save AT&T-style .lab file

 ##--------------------------------------------------------------
 ## String utilities
 $labs = $abet->string_to_labels($str, $emit_warnings=1,$att_style=0); # string->labels
 $str  = $abet->labels_to_string($labs,$emit_warnings=1,$att_style=0); # labels->string

 ##--------------------------------------------------------------
 ## Conversion
 $abet      = $abet->fromHash(\%string2id);  # add mappings from \%string2id_hash
 $string2id = $abet->toHash();               # export mappings to hash-ref
 $string2id = $abet->asHash();               # read-only access to underlying index
 
 $abet      = $abet->fromArray(\@id2string); # add mappings from \@id2string
 $id2string = $abet->toArray();              # export mappings to array-ref
 $id2string = $abet->asArray();              # read-only access to underlying index

DESCRIPTION

Gfsm::Alphabet provides an object-oriented interface to string symbol alphabets as used by the libgfsm library.

BUGS AND LIMITATIONS

Probably many.

SEE ALSO

Gfsm(3perl), gfsmutils(1).

AUTHOR

Bryan Jurish <moocow@cpan.org>

COPYRIGHT AND LICENSE

Copyright (C) 2005-2014 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.