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 )