Text-Fab
view release on metacpan or search on metacpan
lib/Text/Fab.pm view on Meta::CPAN
=over 4
=item *
C<E_MISMATCHED_END_GROUP>: An C<#end_group E<lt>flavorE<gt>> does not match the currently open group.
=item *
C<E_DANGLING_END_GROUP>: An C<#end_group> is found with no matching C<#start_group>.
=item *
C<E_INVALID_GROUP_NESTING>: An attempt to nest groups in a way forbidden by the Configuration.
=item *
C<E_UPLEVEL_TOO_DEEP>: An C<uplevel> directive targets a group or call stack level that does not exist.
=back
=head2 B<< Configuration Errors (C<E_Config>) >>
=over 4
=item *
C<E_TYPE_UNDECLARED>: A type-specific operation is used on a key whose type has not been declared.
=item *
C<E_TYPE_MISMATCH>: A list-specific operation is attempted on a scalar key, or vice-versa.
=item *
C<E_LONG_POP>: Popping too many elements.
=back
=head2 B<< Namespace and Assembly Errors (C<E_Assembly>) >>
=over 4
=item *
C<E_CYCLIC_INHERITANCE>: An C<#set_parents> directive creates a loop in the inheritance DAG.
=item *
C<E_UNDEFINED_PARENT>: An C<#set_parents> directive refers to a non-existent namespace.
=item *
C<E_ROOT_NOT_FOUND>: A section specified via C<#set_root> does not exist.
=item *
C<E_NO_ROOTS_SPECIFIED>: The assembly phase is triggered, but no roots were ever defined.
=item *
C<E_EMBED_NOT_FOUND>: A section referenced by an C<#emb> placeholder cannot be resolved.
=item *
C<E_CIRCULAR_EMBED>: An C<#emb> chain results in a loop during the final assembly.
=back
=head2 B<< Control Flow Errors (C<E_Control>) >>
=over 4
=item *
C<E_MISMATCHED_CONTROL_END>: An end directive (e.g., C<#endif>) was encountered, but the currently open control block is of a different type (e.g., a C<#for> loop).
=item *
C<E_DANGLING_CONTROL_END>: An end directive was encountered when the Control Stack was empty.
=item *
C<E_UNCLOSED_CONTROL_BLOCK>: The end of an input file was reached while one or more control blocks were still open.
=item *
C<E_POINTER_NOT_FOUND>: A C<control__jump_to> call referenced a pointer name that has not been defined in the target control block.
=item *
C<E_BLOCK_LABEL_NOT_FOUND>: A C<control__jump_to> call referenced a block label that does not exist on the Control Stack, and was not found before the end of the enclosing block.
B<Payload:> C<(target_pointer_name, block_label)>
=back
B<[PLACEHOLDERS]>
Future sections will detail the full APIs and default implementations for:
=over 4
=item *
B<The Parser:> How it interacts with the main loop and calls primitives.
=item *
B<Chunk Preprocessors:> The interface for the "stomach".
=item *
B<Blinder Subroutines:> The data structures passed to them.
=item *
B<The default configuration schema> under the C<Fab/> key.
=back
=head2 EXPORT
None by default.
=head1 TODO
( run in 1.404 second using v1.01-cache-2.11-cpan-71847e10f99 )