% Copyright 2012-2014, Alexander Shibakov % This file is part of SPLinT % % SPLinT is free software: you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by % the Free Software Foundation, either version 3 of the License, or % (at your option) any later version. % % SPLinT is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License % along with SPLinT. If not, see . % token equivalence table does not exist, switch to a bootstrap parser \ifx\tokendeffile\UNDEFINED \else \immediate\openout\tokendefs=\tokendeffile \fi \genericparser name: main, ptables: \bstrapparser, ltables: cweb/ltab.tex, tokens: {}, asetup: \bootstraplexersetup, dsetup: \newlexerstateextra, rsetup: \noexpand\savefullstateextra, optimization: \optimizeall;% \tomainparser % this saves the current state \input yytexlex.sty \let\unparse\eatone \expandafter\def\csname parserstack[b]\endcsname#1#2{% \parsevb{#1}% Stage two, start the parsing \ifyyparsefail % do nothing if parsing failed \yybreak{}% \else % Stage three, process the parsed table \yybreak{\initbootstrap\the\table}% \yycontinue } \expandafter\def\csname parserstack[]\endcsname#1#2{% \parsevb{#1}% Stage two, start the parsing \ifyyparsefail % do nothing if parsing failed \yybreak{}% \else % Stage three, process the parsed table \yybreak{\initbootstrap\the\table}% \yycontinue } % stage two macros: parsing \def\parsevb#1{% %\ifchecktable {\toks0{#1}\errmessage{table before parsing: \the\toks0}}\fi \tomainparser % this is not currently required since there are no namespace switching macros % in the \TeX\ portion of the text; it is left here in case such macros are used in the future \doparse{#1}% } \long\def\beginprod#1\endprod{% \endgroup } \let\begincprod\beginprod