Acme-FSM
view release on metacpan or search on metacpan
I<v5.10>, but that's not verified yet.
B<(v2.3.6>)
It's complicated now.
=item B<version>
I<v0.77>.
That's definetely contradicts B<perl>.
I haven't dug through F<Changes> yet,
can't say when The Core has switched to I<v0.77> though.
=item C<Carp>
Whatever comes with B<perl>, hopefully.
=item B<Module::Build>
Whatever comes with B<perl>.
Cut off version to be determined yet.
A::F doesn't need anything (even core modules). However,
: perl
*v5.10*, but that's not verified yet.
(v2.3.6) It's complicated now.
: version
*v0.77*. That's definetely contradicts perl. I haven't dug through
Changes yet, can't say when The Core has switched to *v0.77* though.
: ``Carp''
Whatever comes with perl, hopefully.
: Module::Build
Whatever comes with perl. Cut off version to be determined yet.
==== AVAILABILITY ====
=over
=cut
=item B<verify()>
$rc = $self->query_rc( @args );
$rc = $self->verify( $rc, $state, $tag, $subject, $test );
Here comes rationale.
Writing (or should I say "composing"?) correct {fst} B<A::F> style is hard
(I know what I'm talking about, I've made a dozen already).
The purpose of B<verify()> is to check if the I<{fst}> at hands isn't fubar.
Nothing more, nothing less.
B<query_rc()> is a placeholder for one of B<query_.*()> methods,
I<$test> will be matched against C<ref $rc>.
Other arguments are to fill diagnostic output (if any).
I<$state> hints from what I<{state}> I<$rc> has been queried.
I<$subject> and I<$tag> are short descriptive name and actual value of I<$rc>.
Yup, dealing with B<verify()> might be fubar too.
Returns C<HASH> for C<STOP> and C<BREAK> I<$state>s without any further
processing
(For those I<$state>s any I<$rule> is ignored and C<HASH> enables I<switch()>
callbacks to give more informative logs
(while that information is mangled anyway);
Probably bad idea).
=item *
C<undef> is returned if there's nothing to say --
neither I<tturn>, nor I<fturn>, nor turn map --
this record is kind of void.
The record should be studied to find out why.
B<carp>s in that case.
=back
=item query specific I<[turn]>
Two scalars are I<$state> and specially encoded I<$rule>
=item B<turn()> and B<fst()>
B<(misdesign)>
Encoding (so to speak) in use by B<turn()> (in prediction mode) is plain
stupid.
C<undef> signals two distinct conditions
(granted, both are manifest of broken I<{fst}>).
Empty string doesn't distinguish safe (both C<tturn> and C<fturn> are present)
and risky (C<tturn> or C<fturn> is missing) I<{state}>.
C<HASH> doesn't say if there's anything in turn map.
All that needs loads of workout.
=back
=cut
=head1 DIAGNOSTICS
=over
( run in 0.938 second using v1.01-cache-2.11-cpan-b85c58fdc1d )