% Automatically generated from _tex2tok.tex by helper.py
\catcode`\!=11
\let\!let\let
\!let\-\undefined
\!let\/\undefined
\!let\ \undefined
\!let\!above\above \!let\above\undefined
\!let\!abovedisplayshortskip\abovedisplayshortskip \!let\abovedisplayshortskip\undefined
\!let\!abovedisplayskip\abovedisplayskip \!let\abovedisplayskip\undefined
\!let\!abovewithdelims\abovewithdelims \!let\abovewithdelims\undefined
\!let\!accent\accent \!let\accent\undefined
\!let\!adjdemerits\adjdemerits \!let\adjdemerits\undefined
\!let\!advance\advance \!let\advance\undefined
\!let\!afterassignment\afterassignment \!let\afterassignment\undefined
\!let\!aftergroup\aftergroup \!let\aftergroup\undefined
\!let\!atop\atop \!let\atop\undefined
\!let\!atopwithdelims\atopwithdelims \!let\atopwithdelims\undefined
\!let\!badness\badness \!let\badness\undefined
\!let\!baselineskip\baselineskip \!let\baselineskip\undefined
\!let\!batchmode\batchmode \!let\batchmode\undefined
\!let\!begingroup\begingroup \!let\begingroup\undefined
\!let\!belowdisplayshortskip\belowdisplayshortskip \!let\belowdisplayshortskip\undefined
\!let\!belowdisplayskip\belowdisplayskip \!let\belowdisplayskip\undefined
\!let\!binoppenalty\binoppenalty \!let\binoppenalty\undefined
\!let\!botmark\botmark \!let\botmark\undefined
\!let\!box\box \!let\box\undefined
\!let\!boxmaxdepth\boxmaxdepth \!let\boxmaxdepth\undefined
\!let\!brokenpenalty\brokenpenalty \!let\brokenpenalty\undefined
\!let\!catcode\catcode \!let\catcode\undefined
\!let\!char\char \!let\char\undefined
\!let\!chardef\chardef \!let\chardef\undefined
\!let\!cleaders\cleaders \!let\cleaders\undefined
\!let\!closein\closein \!let\closein\undefined
\!let\!closeout\closeout \!let\closeout\undefined
\!let\!clubpenalty\clubpenalty \!let\clubpenalty\undefined
\!let\!copy\copy \!let\copy\undefined
\!let\!count\count \!let\count\undefined
\!let\!countdef\countdef \!let\countdef\undefined
\!let\!cr\cr \!let\cr\undefined
\!let\!crcr\crcr \!let\crcr\undefined
\!let\!csname\csname \!let\csname\undefined
\!let\!day\day \!let\day\undefined
\!let\!deadcycles\deadcycles \!let\deadcycles\undefined
\!let\!def\def \!let\def\undefined
\!let\!defaulthyphenchar\defaulthyphenchar \!let\defaulthyphenchar\undefined
\!let\!defaultskewchar\defaultskewchar \!let\defaultskewchar\undefined
\!let\!delcode\delcode \!let\delcode\undefined
\!let\!delimiter\delimiter \!let\delimiter\undefined
\!let\!delimiterfactor\delimiterfactor \!let\delimiterfactor\undefined
\!let\!delimitershortfall\delimitershortfall \!let\delimitershortfall\undefined
\!let\!dimen\dimen \!let\dimen\undefined
\!let\!dimendef\dimendef \!let\dimendef\undefined
\!let\!discretionary\discretionary \!let\discretionary\undefined
\!let\!displayindent\displayindent \!let\displayindent\undefined
\!let\!displaylimits\displaylimits \!let\displaylimits\undefined
\!let\!displaystyle\displaystyle \!let\displaystyle\undefined
\!let\!displaywidowpenalty\displaywidowpenalty \!let\displaywidowpenalty\undefined
\!let\!displaywidth\displaywidth \!let\displaywidth\undefined
\!let\!divide\divide \!let\divide\undefined
\!let\!doublehyphendemerits\doublehyphendemerits \!let\doublehyphendemerits\undefined
\!let\!dp\dp \!let\dp\undefined
\!let\!dump\dump \!let\dump\undefined
\!let\!edef\edef \!let\edef\undefined
\!let\!else\else \!let\else\undefined
\!let\!emergencystretch\emergencystretch \!let\emergencystretch\undefined
\!let\!end\end \!let\end\undefined
\!let\!endcsname\endcsname \!let\endcsname\undefined
\!let\!endgroup\endgroup \!let\endgroup\undefined
\!let\!endinput\endinput \!let\endinput\undefined
\!let\!endlinechar\endlinechar \!let\endlinechar\undefined
\!let\!eqno\eqno \!let\eqno\undefined
\!let\!errhelp\errhelp \!let\errhelp\undefined
\!let\!errmessage\errmessage \!let\errmessage\undefined
\!let\!errorcontextlines\errorcontextlines \!let\errorcontextlines\undefined
\!let\!errorstopmode\errorstopmode \!let\errorstopmode\undefined
\!let\!escapechar\escapechar \!let\escapechar\undefined
\!let\!everycr\everycr \!let\everycr\undefined
\!let\!everydisplay\everydisplay \!let\everydisplay\undefined
\!let\!everyhbox\everyhbox \!let\everyhbox\undefined
\!let\!everyjob\everyjob \!let\everyjob\undefined
\!let\!everymath\everymath \!let\everymath\undefined
\!let\!everypar\everypar \!let\everypar\undefined
\!let\!everyvbox\everyvbox \!let\everyvbox\undefined
\!let\!exhyphenpenalty\exhyphenpenalty \!let\exhyphenpenalty\undefined
\!let\!expandafter\expandafter \!let\expandafter\undefined
\!let\!fam\fam \!let\fam\undefined
\!let\!fi\fi \!let\fi\undefined
\!let\!finalhyphendemerits\finalhyphendemerits \!let\finalhyphendemerits\undefined
\!let\!firstmark\firstmark \!let\firstmark\undefined
\!let\!floatingpenalty\floatingpenalty \!let\floatingpenalty\undefined
\!let\!font\font \!let\font\undefined
\!let\!fontdimen\fontdimen \!let\fontdimen\undefined
\!let\!fontname\fontname \!let\fontname\undefined
\!let\!futurelet\futurelet \!let\futurelet\undefined
\!let\!gdef\gdef \!let\gdef\undefined
\!let\!global\global \!let\global\undefined
\!let\!globaldefs\globaldefs \!let\globaldefs\undefined
\!let\!halign\halign \!let\halign\undefined
\!let\!hangafter\hangafter \!let\hangafter\undefined
\!let\!hangindent\hangindent \!let\hangindent\undefined
\!let\!hbadness\hbadness \!let\hbadness\undefined
\!let\!hbox\hbox \!let\hbox\undefined
\!let\!hfil\hfil \!let\hfil\undefined
\!let\!hfill\hfill \!let\hfill\undefined
\!let\!hfilneg\hfilneg \!let\hfilneg\undefined
\!let\!hfuzz\hfuzz \!let\hfuzz\undefined
\!let\!hoffset\hoffset \!let\hoffset\undefined
\!let\!holdinginserts\holdinginserts \!let\holdinginserts\undefined
\!let\!hrule\hrule \!let\hrule\undefined
\!let\!hsize\hsize \!let\hsize\undefined
\!let\!hskip\hskip \!let\hskip\undefined
\!let\!hss\hss \!let\hss\undefined
\!let\!ht\ht \!let\ht\undefined
\!let\!hyphenation\hyphenation \!let\hyphenation\undefined
\!let\!hyphenchar\hyphenchar \!let\hyphenchar\undefined
\!let\!hyphenpenalty\hyphenpenalty \!let\hyphenpenalty\undefined
\!let\!if\if \!let\if\undefined
\!let\!ifcase\ifcase \!let\ifcase\undefined
\!let\!ifcat\ifcat \!let\ifcat\undefined
\!let\!ifdim\ifdim \!let\ifdim\undefined
\!let\!ifeof\ifeof \!let\ifeof\undefined
\!let\!iffalse\iffalse \!let\iffalse\undefined
\!let\!ifhbox\ifhbox \!let\ifhbox\undefined
\!let\!ifhmode\ifhmode \!let\ifhmode\undefined
\!let\!ifinner\ifinner \!let\ifinner\undefined
\!let\!ifmmode\ifmmode \!let\ifmmode\undefined
\!let\!ifnum\ifnum \!let\ifnum\undefined
\!let\!ifodd\ifodd \!let\ifodd\undefined
\!let\!iftrue\iftrue \!let\iftrue\undefined
\!let\!ifvbox\ifvbox \!let\ifvbox\undefined
\!let\!ifvmode\ifvmode \!let\ifvmode\undefined
\!let\!ifvoid\ifvoid \!let\ifvoid\undefined
\!let\!ifx\ifx \!let\ifx\undefined
\!let\!ignorespaces\ignorespaces \!let\ignorespaces\undefined
\!let\!immediate\immediate \!let\immediate\undefined
\!let\!indent\indent \!let\indent\undefined
\!let\!input\input \!let\input\undefined
\!let\!inputlineno\inputlineno \!let\inputlineno\undefined
\!let\!insert\insert \!let\insert\undefined
\!let\!insertpenalties\insertpenalties \!let\insertpenalties\undefined
\!let\!interlinepenalty\interlinepenalty \!let\interlinepenalty\undefined
\!let\!jobname\jobname \!let\jobname\undefined
\!let\!kern\kern \!let\kern\undefined
\!let\!language\language \!let\language\undefined
\!let\!lastbox\lastbox \!let\lastbox\undefined
\!let\!lastkern\lastkern \!let\lastkern\undefined
\!let\!lastpenalty\lastpenalty \!let\lastpenalty\undefined
\!let\!lastskip\lastskip \!let\lastskip\undefined
\!let\!lccode\lccode \!let\lccode\undefined
\!let\!leaders\leaders \!let\leaders\undefined
\!let\!left\left \!let\left\undefined
\!let\!lefthyphenmin\lefthyphenmin \!let\lefthyphenmin\undefined
\!let\!leftskip\leftskip \!let\leftskip\undefined
\!let\!leqno\leqno \!let\leqno\undefined
\!let\!let\let \!let\let\undefined
\!let\!limits\limits \!let\limits\undefined
\!let\!linepenalty\linepenalty \!let\linepenalty\undefined
\!let\!lineskip\lineskip \!let\lineskip\undefined
\!let\!lineskiplimit\lineskiplimit \!let\lineskiplimit\undefined
\!let\!long\long \!let\long\undefined
\!let\!looseness\looseness \!let\looseness\undefined
\!let\!lower\lower \!let\lower\undefined
\!let\!lowercase\lowercase \!let\lowercase\undefined
\!let\!mag\mag \!let\mag\undefined
\!let\!mark\mark \!let\mark\undefined
\!let\!mathaccent\mathaccent \!let\mathaccent\undefined
\!let\!mathbin\mathbin \!let\mathbin\undefined
\!let\!mathchar\mathchar \!let\mathchar\undefined
\!let\!mathchardef\mathchardef \!let\mathchardef\undefined
\!let\!mathchoice\mathchoice \!let\mathchoice\undefined
\!let\!mathclose\mathclose \!let\mathclose\undefined
\!let\!mathcode\mathcode \!let\mathcode\undefined
\!let\!mathinner\mathinner \!let\mathinner\undefined
\!let\!mathop\mathop \!let\mathop\undefined
\!let\!mathopen\mathopen \!let\mathopen\undefined
\!let\!mathord\mathord \!let\mathord\undefined
\!let\!mathpunct\mathpunct \!let\mathpunct\undefined
\!let\!mathrel\mathrel \!let\mathrel\undefined
\!let\!mathsurround\mathsurround \!let\mathsurround\undefined
\!let\!maxdeadcycles\maxdeadcycles \!let\maxdeadcycles\undefined
\!let\!maxdepth\maxdepth \!let\maxdepth\undefined
\!let\!meaning\meaning \!let\meaning\undefined
\!let\!medmuskip\medmuskip \!let\medmuskip\undefined
\!let\!message\message \!let\message\undefined
\!let\!mkern\mkern \!let\mkern\undefined
\!let\!month\month \!let\month\undefined
\!let\!moveleft\moveleft \!let\moveleft\undefined
\!let\!moveright\moveright \!let\moveright\undefined
\!let\!mskip\mskip \!let\mskip\undefined
\!let\!multiply\multiply \!let\multiply\undefined
\!let\!muskip\muskip \!let\muskip\undefined
\!let\!muskipdef\muskipdef \!let\muskipdef\undefined
\!let\!newlinechar\newlinechar \!let\newlinechar\undefined
\!let\!noalign\noalign \!let\noalign\undefined
\!let\!noboundary\noboundary \!let\noboundary\undefined
\!let\!noexpand\noexpand \!let\noexpand\undefined
\!let\!noindent\noindent \!let\noindent\undefined
\!let\!nolimits\nolimits \!let\nolimits\undefined
\!let\!nonscript\nonscript \!let\nonscript\undefined
\!let\!nonstopmode\nonstopmode \!let\nonstopmode\undefined
\!let\!nulldelimiterspace\nulldelimiterspace \!let\nulldelimiterspace\undefined
\!let\!nullfont\nullfont \!let\nullfont\undefined
\!let\!number\number \!let\number\undefined
\!let\!omit\omit \!let\omit\undefined
\!let\!openin\openin \!let\openin\undefined
\!let\!openout\openout \!let\openout\undefined
\!let\!or\or \!let\or\undefined
\!let\!outer\outer \!let\outer\undefined
\!let\!output\output \!let\output\undefined
\!let\!outputpenalty\outputpenalty \!let\outputpenalty\undefined
\!let\!over\over \!let\over\undefined
\!let\!overfullrule\overfullrule \!let\overfullrule\undefined
\!let\!overline\overline \!let\overline\undefined
\!let\!overwithdelims\overwithdelims \!let\overwithdelims\undefined
\!let\!pagedepth\pagedepth \!let\pagedepth\undefined
\!let\!pagefilllstretch\pagefilllstretch \!let\pagefilllstretch\undefined
\!let\!pagefillstretch\pagefillstretch \!let\pagefillstretch\undefined
\!let\!pagefilstretch\pagefilstretch \!let\pagefilstretch\undefined
\!let\!pagegoal\pagegoal \!let\pagegoal\undefined
\!let\!pageshrink\pageshrink \!let\pageshrink\undefined
\!let\!pagestretch\pagestretch \!let\pagestretch\undefined
\!let\!pagetotal\pagetotal \!let\pagetotal\undefined
\!let\!parfillskip\parfillskip \!let\parfillskip\undefined
\!let\!parindent\parindent \!let\parindent\undefined
\!let\!parshape\parshape \!let\parshape\undefined
\!let\!parskip\parskip \!let\parskip\undefined
\!let\!patterns\patterns \!let\patterns\undefined
\!let\!pausing\pausing \!let\pausing\undefined
\!let\!penalty\penalty \!let\penalty\undefined
\!let\!postdisplaypenalty\postdisplaypenalty \!let\postdisplaypenalty\undefined
\!let\!predisplaypenalty\predisplaypenalty \!let\predisplaypenalty\undefined
\!let\!predisplaysize\predisplaysize \!let\predisplaysize\undefined
\!let\!pretolerance\pretolerance \!let\pretolerance\undefined
\!let\!prevdepth\prevdepth \!let\prevdepth\undefined
\!let\!prevgraf\prevgraf \!let\prevgraf\undefined
\!let\!radical\radical \!let\radical\undefined
\!let\!raise\raise \!let\raise\undefined
\!let\!read\read \!let\read\undefined
\!let\!relax\relax \!let\relax\undefined
\!let\!relpenalty\relpenalty \!let\relpenalty\undefined
\!let\!right\right \!let\right\undefined
\!let\!righthyphenmin\righthyphenmin \!let\righthyphenmin\undefined
\!let\!rightskip\rightskip \!let\rightskip\undefined
\!let\!romannumeral\romannumeral \!let\romannumeral\undefined
\!let\!scriptfont\scriptfont \!let\scriptfont\undefined
\!let\!scriptscriptfont\scriptscriptfont \!let\scriptscriptfont\undefined
\!let\!scriptscriptstyle\scriptscriptstyle \!let\scriptscriptstyle\undefined
\!let\!scriptspace\scriptspace \!let\scriptspace\undefined
\!let\!scriptstyle\scriptstyle \!let\scriptstyle\undefined
\!let\!scrollmode\scrollmode \!let\scrollmode\undefined
\!let\!setbox\setbox \!let\setbox\undefined
\!let\!setlanguage\setlanguage \!let\setlanguage\undefined
\!let\!sfcode\sfcode \!let\sfcode\undefined
\!let\!shipout\shipout \!let\shipout\undefined
\!let\!show\show \!let\show\undefined
\!let\!showbox\showbox \!let\showbox\undefined
\!let\!showboxbreadth\showboxbreadth \!let\showboxbreadth\undefined
\!let\!showboxdepth\showboxdepth \!let\showboxdepth\undefined
\!let\!showlists\showlists \!let\showlists\undefined
\!let\!showthe\showthe \!let\showthe\undefined
\!let\!skewchar\skewchar \!let\skewchar\undefined
\!let\!skip\skip \!let\skip\undefined
\!let\!skipdef\skipdef \!let\skipdef\undefined
\!let\!spacefactor\spacefactor \!let\spacefactor\undefined
\!let\!spaceskip\spaceskip \!let\spaceskip\undefined
\!let\!span\span \!let\span\undefined
\!let\!special\special \!let\special\undefined
\!let\!splitbotmark\splitbotmark \!let\splitbotmark\undefined
\!let\!splitfirstmark\splitfirstmark \!let\splitfirstmark\undefined
\!let\!splitmaxdepth\splitmaxdepth \!let\splitmaxdepth\undefined
\!let\!splittopskip\splittopskip \!let\splittopskip\undefined
\!let\!string\string \!let\string\undefined
\!let\!tabskip\tabskip \!let\tabskip\undefined
\!let\!textfont\textfont \!let\textfont\undefined
\!let\!textstyle\textstyle \!let\textstyle\undefined
\!let\!the\the \!let\the\undefined
\!let\!thickmuskip\thickmuskip \!let\thickmuskip\undefined
\!let\!thinmuskip\thinmuskip \!let\thinmuskip\undefined
\!let\!time\time \!let\time\undefined
\!let\!toks\toks \!let\toks\undefined
\!let\!toksdef\toksdef \!let\toksdef\undefined
\!let\!tolerance\tolerance \!let\tolerance\undefined
\!let\!topmark\topmark \!let\topmark\undefined
\!let\!topskip\topskip \!let\topskip\undefined
\!let\!tracingcommands\tracingcommands \!let\tracingcommands\undefined
\!let\!tracinglostchars\tracinglostchars \!let\tracinglostchars\undefined
\!let\!tracingmacros\tracingmacros \!let\tracingmacros\undefined
\!let\!tracingonline\tracingonline \!let\tracingonline\undefined
\!let\!tracingoutput\tracingoutput \!let\tracingoutput\undefined
\!let\!tracingpages\tracingpages \!let\tracingpages\undefined
\!let\!tracingparagraphs\tracingparagraphs \!let\tracingparagraphs\undefined
\!let\!tracingrestores\tracingrestores \!let\tracingrestores\undefined
\!let\!tracingstats\tracingstats \!let\tracingstats\undefined
\!let\!uccode\uccode \!let\uccode\undefined
\!let\!uchyph\uchyph \!let\uchyph\undefined
\!let\!underline\underline \!let\underline\undefined
\!let\!unhbox\unhbox \!let\unhbox\undefined
\!let\!unhcopy\unhcopy \!let\unhcopy\undefined
\!let\!unkern\unkern \!let\unkern\undefined
\!let\!unpenalty\unpenalty \!let\unpenalty\undefined
\!let\!unskip\unskip \!let\unskip\undefined
\!let\!unvbox\unvbox \!let\unvbox\undefined
\!let\!unvcopy\unvcopy \!let\unvcopy\undefined
\!let\!uppercase\uppercase \!let\uppercase\undefined
\!let\!vadjust\vadjust \!let\vadjust\undefined
\!let\!valign\valign \!let\valign\undefined
\!let\!vbadness\vbadness \!let\vbadness\undefined
\!let\!vbox\vbox \!let\vbox\undefined
\!let\!vcenter\vcenter \!let\vcenter\undefined
\!let\!vfil\vfil \!let\vfil\undefined
\!let\!vfill\vfill \!let\vfill\undefined
\!let\!vfilneg\vfilneg \!let\vfilneg\undefined
\!let\!vfuzz\vfuzz \!let\vfuzz\undefined
\!let\!voffset\voffset \!let\voffset\undefined
\!let\!vrule\vrule \!let\vrule\undefined
\!let\!vsize\vsize \!let\vsize\undefined
\!let\!vskip\vskip \!let\vskip\undefined
\!let\!vsplit\vsplit \!let\vsplit\undefined
\!let\!vss\vss \!let\vss\undefined
\!let\!vtop\vtop \!let\vtop\undefined
\!let\!wd\wd \!let\wd\undefined
\!let\!widowpenalty\widowpenalty \!let\widowpenalty\undefined
\!let\!write\write \!let\write\undefined
\!let\!xdef\xdef \!let\xdef\undefined
\!let\!xleaders\xleaders \!let\xleaders\undefined
\!let\!xspaceskip\xspaceskip \!let\xspaceskip\undefined
\!let\!year\year \!let\year\undefined
% Copyright (c) 2005 Jonathan Fine <jfine@pytex.org>
% License: GPL version 2 or (at your option) any later version.
% $Source: /cvsroot/pytex/pytex/tex2tok/tex2tok.tex,v $

%  usage: '\!LEX{story}

\!catcode`|=0                    % for document control sequences
\!catcode`{=1
\!catcode`}=2
\!catcode`$=3
\!catcode`&=4
\!catcode`#=6
\!catcode`^=7
\!catcode`_=8
\!catcode`@=11

% useful constants
\!let\!bgroup {
\!let\!egroup }
\!chardef\!zero 0
\!chardef\!one 1

\!def\?{\!let\!space = } \?        % define \!space
\!let\? \!undefined               % clean up afterwards

\!chardef\!tokfile 16             % change if you wish


\!def\!loop
% loop through sequence of tokens
% assign to \!value the meaning of the next token
{%
  \!futurelet\!value\!loop@A
}


\!def\!loop@continue
% pick up the next token, and continue the loop
% required, for dealing with space and brace characters
{%
  \!afterassignment\!loop
  \!let\!@temp = 
}


\!def\!loop@A
% is the next token unexpandable?
% always, unexpandable tokens are characters
% always, control sequences are expandable (or undefined)
% sometimes, a character may be expandable
{%
  \!expandafter\!ifx\!noexpand\!value\!value
     \!expandafter\!loop@char
  \!else
     \!expandafter\!loop@macro
  \!fi
}


\!def\!loop@macro
% suppress implicit \!outer token at end of file
{\!expandafter\!loop@macro@A\!noexpand}

\!long\!def\!loop@macro@A #1%
% #1 - expandable token, picked up from input stream
% execute the token, and resume the loop
% if the token is undefined, call 
{
  \!ifx #1\!undefined
    \!process@undefined #1%
    \!expandafter\!loop
  \!else
    \!expandafter #1%
  \!fi
}


\!long\!def\!process@undefined #1%
% #1 - undefined control sequence
% default value - can be redefined
{%
  \!immediate\!write\!tokfile{\!string #1}%
}


\!def\!endloop
% when read by \!loop, this ends its execution
{}


\!def\!loop@char
% process next token, which is a character
% might be letter, other, brace or whatever
% afterwards, continue with the loop
{%
  % some tricky code to deal with common cases at high speed
  \!ifcase 
    % first deal with the common cases, at high speed
    \!ifcat a\!value \!one\!fi      % it's a letter
    \!ifcat ?\!value \!one\!fi      % it's punctuation, digit, etc.
    \!zero
    \!expandafter\!loop@char@A    % it's something else
  \!or                           % case of letter or digit
    \!expandafter\!loop@char@default
  \!fi
}


\!def\!loop@char@default #1%
% #1 - a character we can pick up in this way
{%
  \!immediate\!write\!tokfile{#1}%
  \!loop
}


\!def\!loop@char@A
% next token is a special character
% pick it up, and process it
% we already have the \
{%
  \!ifx\!value
  \!ifx\!value\!@space
    \!immediate\!write16{ \!@percent}
  \!else
    \!immediate\!write16{%
      \!expandafter\!@char@strip\!meaning\!value
      \!@percent
    }%
  \!fi
}


\!def\!empty{}
\!def\!loop@char@A 
{%
  \!edef\!temp
  {%
    \!ifx\!value\!space
      \!if11 \!fi
    \!else\!ifx\!value\!bgroup
      +\!string{%
    \!else\!ifx\!value\!egroup
      -\!string}%
    \!fi\!fi\!fi
  }
  \!ifx\!temp\!empty
    \!expandafter\!loop@char@default
  \!else
    \!immediate\!write\!tokfile{\!temp}%
    \!expandafter\!loop@continue
  \!fi
}

\!def |LEX #1%
{%
  \!begingroup
    \!let|par\!undefined          % blank lines in input document file
    \!let\!LEX\!undefined          % in case it appears in document file
    \!catcode`!=12               % restore to normal value
    \!catcode`|=12               % restore to normal value
    \!catcode`@=12               % restore to normal value
    \!chardef\!tokfile 15
    \!def\!next{\!immediate\!openout\!tokfile \!jobname.tok }%
    \!expandafter\!next
    \!expandafter\!loop
      \!input #1                 % space to terminate file name
    \!endloop
    \!immediate\!closeout\!tokfile
  \!endgroup
  \!end
}

\!dump

