<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">% File:       TeX Inputs declare.tex
% Author:     J E Pittman
% Date:       September 29, 1988
%
% Revision 01-Jun-1990
% 	Changed count19 to count20 to conform to TeX 3.0
%       - Neil Burleson (NABTEXM@TAMVENUS)
%
% These macros provide a method of locally allocating registers
% without interference with previously allocated registers.  The
% method is the same as on pages 346--347 of the \TeX book, however,
% the declare macros are intended for local use only.  It is a logical
% error to use a new macro between a declare macro and the end of the
% appropriate enclosing group.
%
\def\declarecount {\allocate0\countdef}%
\def\declaredimen {\allocate1\dimendef}%
\def\declareskip  {\allocate2\skipdef}%
\def\declaremuskip{\allocate3\muskipdef}%
\def\declarebox   {\allocate4\chardef}%
\def\declaretoks  {\allocate5\toksdef}%
%
\def\allocate#1#2#3{\relax
   \advance\count1#1 by 1
   \ifnum\count1#1&lt;\count20
   \else
      \errmessage{No room for \string#3!}%
   \fi
   #2#3=\count1#1
   }%
%
\endinput
</pre></body></html>