HTML-Template-Pro library.
=======================

libhtmltmplpro 

libhtmltmplpro is a fast lightweight C implementation of perl modules
HTML::Template (as of 2.9) and HTML::Template::Expr (as of 0.0.7). 

The main principle is following:
Core C library should always be as language neutral
and portable as possible.

* HTML-Template-Pro "param" data tree.

As ANSI C language lacks standard dictionary types,
the code was designed so that a language wrapper should use
its own language spacific (as Perl built-in hash anr array)
or library specific (C+glib, for example) types to build 
a HTML-Template-Pro "param" data tree
and should provide abstract getters and movers to the core C library
to navigate through the "param" data tree
as well as some other system specific calls.

The param data tree structure is built from the following abstract
objects: A SCOPE, A LOOP, A VALUE.
A SCOPE is an abstract dictionary that maps NAME to A VALUE.
A VALUE should either be convertable to string, or it should be A LOOP.
A LOOP is an abstract list of SCOPEs.
A LOOP can be iterated over its SCOPEs.
When a template enters A LOOP, its current SCOPE is pushed into a scope stack,
and, depending on configuration options, a VALUE for a given NAME is searched
through the SCOPEs of the scope stack.

* Multithreading.

HTML-Template-Pro C library routines do not have any mutable global variables.
Hence, It is safe to use it in multithread context, assuming each thread will 
use its own set of libHTMLTmplPro main classes (of struct tmplpro_param* type).

* COPYRIGHT AND LICENCE

Copyright (C) 2005-2009 by I. Yu. Vlasenko.
Pieces of documentation of HTML::Template are
copyright (C) 2000-2009 Sam Tregar (sam@tregar.com)
Other contributors to the code base are listed in Changes.

The template syntax, interface conventions and a large piece of documentation 
of HTML::Template::Pro are based on CPAN module HTML::Template 
by Sam Tregar, sam@tregar.com.

This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself, either Perl version 5.8.4 or,
at your option, any later version of Perl 5 you may have available,
or, at your option, under the terms of the GNU Lesser General Public License 
as published by the Free Software Foundation; either version 2 of the 
License, or (at your option) any later version.

