% 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 . \input limbo.sty \input yy.sty \let\N\textN @**Parser tables. This is the main table output code. Its core comes from the Bison Sourcer(er?) (\.{bs.w}) which will be included as soon as this paragraph is over. Since the main function of this code is to {\it dump\/} tables produced by \bison, and a {\it bison\/} is a large buffalo like animal, {\it and\/} the only reason it has to be done like this is due to the less than optimal choices of a few developers, feel free to interpret the acronym as something easier to remember. @ @= @@; @ @= @@; @ @= @@; @ @= @@; @ @= @@; @ @= @@; @ @= @@; @ @= @@; @ @= @@; @ @= @@; @ @= @@; @ @= @@; @ @= @@; @ @= @@; @ @= @@; @ @= @@; @ @= @@; @ @= @@; @ @<\Cee\ preamble@>= @@; @i common.w @i bs.w @*1 Parser dependent settings. This is it for the core table output functions. To make all this into a working code in this case, lexing and error function declarations are supplied. @= #ifndef HAS_SCANNER int yylex(void); int yyerror(void); #endif @ @= #ifndef HAS_SCANNER int yylex(void){} int yyerror(void){} #endif @ \let\B\oldB % \Cee\ mode mixes all up @c @<\Cee\ preamble@>@; #include PARSER_FILE @<\Cee\ postamble@>@; @** Index (for {\tt \jobname}). \def\readcontents{% {% \acrofalse % \def\jobname{bparser}\input bparser.toc % \def\jobname{ftablesout}\input ftablesout.toc }% \input \contentsfile }