%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Introduction}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Who should read this Guide?}

The Cheetah Developers' Guide is for those who want to learn how Cheetah works
internally, or wish to modify or extend Cheetah.  It is assumed that
you've read the Cheetah Users' Guide and have an intermediate knowledge of
Python.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Contents}

This Guide takes a behaviorist approach.  First we'll look at what the
Cheetah compiler generates when it compiles a template definition, and
how it compiles the various \$placeholder features and \#directives.
Then we'll stroll through the files in the Cheetah source distribution
and show how each file contributes to the compilation and/or filling of
templates.  We'll list every method/attribute inherited by a template
object.  Finally, we'll describe how to submit
bugfixes/enhancements to Cheetah, and how to add to the documentation.

Appendices will contain a BNF syntax of Cheetah constructs, and ...
\code{self}
cheetah-compile does when it converts a template definition to a .py
template module.  Since 
compiler, it describes what happens to all templates.  

This Guide first takes a look at the files inside the Cheetah source
distribution.  Then it gives a brief overview of the \code{Template} object.
Then it describes the Cheetah compiler, how it works.  Then it takes a look at
.py template modules.  Then we discuss the various placeholder syntaxes,
expressions and directives, and see their effect on the .py template module.
Then we'll take a closer look at the parser and then the compiler.

Finally, chapter ?? shows how to modify or extend Cheetah without incurring
the wrath of the developers, and how to contribute to Cheetah's documentation.

% Local Variables:
% TeX-master: "users_guide"
% End:      
