\section{Standard Module \sectcode{sgmllib}}
\label{module-sgmllib}
\stmodindex{sgmllib}
\index{SGML}

This module defines a class \code{SGMLParser} which serves as the
basis for parsing text files formatted in SGML (Standard Generalized
Mark-up Language).  In fact, it does not provide a full SGML parser
--- it only parses SGML insofar as it is used by HTML, and the module
only exists as a base for the \code{htmllib} module.
\stmodindex{htmllib}

In particular, the parser is hardcoded to recognize the following
constructs:

\begin{itemize}

\item
Opening and closing tags of the form
``\code{<\var{tag} \var{attr}="\var{value}" ...>}'' and
``\code{</\var{tag}>}'', respectively.

\item
Numeric character references of the form ``\code{\&\#\var{name};}''.

\item
Entity references of the form ``\code{\&\var{name};}''.

\item
SGML comments of the form ``\code{<!--\var{text}-->}''.  Note that
spaces, tabs, and newlines are allowed between the trailing
``\code{>}'' and the immediately preceeding ``\code{--}''.

\end{itemize}

The \code{SGMLParser} class must be instantiated without arguments.
It has the following interface methods:

\renewcommand{\indexsubitem}{({\tt SGMLParser} method)}

\begin{funcdesc}{reset}{}
Reset the instance.  Loses all unprocessed data.  This is called
implicitly at instantiation time.
\end{funcdesc}

\begin{funcdesc}{setnomoretags}{}
Stop processing tags.  Treat all following input as literal input
(CDATA).  (This is only provided so the HTML tag \code{<PLAINTEXT>}
can be implemented.)
\end{funcdesc}

\begin{funcdesc}{setliteral}{}
Enter literal mode (CDATA mode).
\end{funcdesc}

\begin{funcdesc}{feed}{data}
Feed some text to the parser.  It is processed insofar as it consists
of complete elements; incomplete data is buffered until more data is
fed or \code{close()} is called.
\end{funcdesc}

\begin{funcdesc}{close}{}
Force processing of all buffered data as if it were followed by an
end-of-file mark.  This method may be redefined by a derived class to
define additional processing at the end of the input, but the
redefined version should always call \code{SGMLParser.close()}.
\end{funcdesc}

\begin{funcdesc}{handle_starttag}{tag\, method\, attributes}
This method is called to handle start tags for which either a
\code{start_\var{tag}()} or \code{do_\var{tag}()} method has been
defined.  The \code{tag} argument is the name of the tag converted to
lower case, and the \code{method} argument is the bound method which
should be used to support semantic interpretation of the start tag.
The \var{attributes} argument is a list of (\var{name}, \var{value})
pairs containing the attributes found inside the tag's \code{<>}
brackets.  The \var{name} has been translated to lower case and double
quotes and backslashes in the \var{value} have been interpreted.  For
instance, for the tag \code{<A HREF="http://www.cwi.nl/">}, this
method would be called as \code{unknown_starttag('a', [('href',
'http://www.cwi.nl/')])}.  The base implementation simply calls
\code{method} with \code{attributes} as the only argument.
\end{funcdesc}

\begin{funcdesc}{handle_endtag}{tag\, method}

This method is called to handle endtags for which an
\code{end_\var{tag}()} method has been defined.  The \code{tag}
argument is the name of the tag converted to lower case, and the
\code{method} argument is the bound method which should be used to
support semantic interpretation of the end tag.  If no
\code{end_\var{tag}()} method is defined for the closing element, this
handler is not called.  The base implementation simply calls
\code{method}.
\end{funcdesc}

\begin{funcdesc}{handle_data}{data}
This method is called to process arbitrary data.  It is intended to be
overridden by a derived class; the base class implementation does
nothing.
\end{funcdesc}

\begin{funcdesc}{handle_charref}{ref}
This method is called to process a character reference of the form
``\code{\&\#\var{ref};}''.  In the base implementation, \var{ref} must
be a decimal number in the
range 0-255.  It translates the character to \ASCII{} and calls the
method \code{handle_data()} with the character as argument.  If
\var{ref} is invalid or out of range, the method
\code{unknown_charref(\var{ref})} is called to handle the error.  A
subclass must override this method to provide support for named
character entities.
\end{funcdesc}

\begin{funcdesc}{handle_entityref}{ref}
This method is called to process a general entity reference of the form
``\code{\&\var{ref};}'' where \var{ref} is an general entity
reference.  It looks for \var{ref} in the instance (or class)
variable \code{entitydefs} which should be a mapping from entity names
to corresponding translations.
If a translation is found, it calls the method \code{handle_data()}
with the translation; otherwise, it calls the method
\code{unknown_entityref(\var{ref})}.  The default \code{entitydefs}
defines translations for \code{\&amp;}, \code{\&apos}, \code{\&gt;},
\code{\&lt;}, and \code{\&quot;}.
\end{funcdesc}

\begin{funcdesc}{handle_comment}{comment}
This method is called when a comment is encountered.  The
\code{comment} argument is a string containing the text between the
``\code{<!--}'' and ``\code{-->}'' delimiters, but not the delimiters
themselves.  For example, the comment ``\code{<!--text-->}'' will
cause this method to be called with the argument \code{'text'}.  The
default method does nothing.
\end{funcdesc}

\begin{funcdesc}{report_unbalanced}{tag}
This method is called when an end tag is found which does not
correspond to any open element.
\end{funcdesc}

\begin{funcdesc}{unknown_starttag}{tag\, attributes}
This method is called to process an unknown start tag.  It is intended
to be overridden by a derived class; the base class implementation
does nothing.
\end{funcdesc}

\begin{funcdesc}{unknown_endtag}{tag}
This method is called to process an unknown end tag.  It is intended
to be overridden by a derived class; the base class implementation
does nothing.
\end{funcdesc}

\begin{funcdesc}{unknown_charref}{ref}
This method is called to process unresolvable numeric character
references.  It is intended to be overridden by a derived class; the
base class implementation does nothing.
\end{funcdesc}

\begin{funcdesc}{unknown_entityref}{ref}
This method is called to process an unknown entity reference.  It is
intended to be overridden by a derived class; the base class
implementation does nothing.
\end{funcdesc}

Apart from overriding or extending the methods listed above, derived
classes may also define methods of the following form to define
processing of specific tags.  Tag names in the input stream are case
independent; the \var{tag} occurring in method names must be in lower
case:

\begin{funcdesc}{start_\var{tag}}{attributes}
This method is called to process an opening tag \var{tag}.  It has
preference over \code{do_\var{tag}()}.  The \var{attributes} argument
has the same meaning as described for \code{handle_starttag()} above.
\end{funcdesc}

\begin{funcdesc}{do_\var{tag}}{attributes}
This method is called to process an opening tag \var{tag} that does
not come with a matching closing tag.  The \var{attributes} argument
has the same meaning as described for \code{handle_starttag()} above.
\end{funcdesc}

\begin{funcdesc}{end_\var{tag}}{}
This method is called to process a closing tag \var{tag}.
\end{funcdesc}

Note that the parser maintains a stack of open elements for which no
end tag has been found yet.  Only tags processed by
\code{start_\var{tag}()} are pushed on this stack.  Definition of an
\code{end_\var{tag}()} method is optional for these tags.  For tags
processed by \code{do_\var{tag}()} or by \code{unknown_tag()}, no
\code{end_\var{tag}()} method must be defined; if defined, it will not
be used.  If both \code{start_\var{tag}()} and \code{do_\var{tag}()}
methods exist for a tag, the \code{start_\var{tag}()} method takes
precedence.
