% Copyright 2012-2022, 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 . @**Lexer tables. This is the main table output code. Its core comes from the Flex Kit(ten?) (\.{fk.w}) which will be included as soon as this paragraph is over. Feel free to interpret the acronym as something easier to remember. @= @@; @ @= @@; @ @= @@; @ @= @@; @ @= @@; @ @= @@; @ @<\Cee\ preamble@>= @@; @@; @ @= @@; @ @= @@; @ @= @@; @ @= @@; @ @= @@; @ @= @@; @i common.w @i fk.w @*1 Lexer dependent settings. This is it for the core table output functions. To make all this into a working code in this case, no function declarations are supplied. @= @ @= @ @<\Cee\ preamble@>= void define_all_states( void ); @ The lexer takes no parameters in this case but if one reuses a lexer written for a different purpose, the situation may be different. %\let\B\oldB % \Cee\ mode mixes all up @d YYPARSE_PARAMETERS @d YY_USER_INIT define_all_states(); @d yyterminate() TeX_( "/yyterminate" ); return YY_NULL @c @<\Cee\ preamble@>@; typedef int YYSTYPE; #define YY_BREAK return 0; #define YY_USER_ACTION fprintf( tables_out, "%s\n", " \\YYRULESETUP" ); #include LEXER_FILE @<\Cee\ postamble@>@; @** Index (for {\tt \jobname}). %\def\readcontents{% % {% % \acrofalse % \def\jobname{bparser}\input bparser.toc % }% % \input \contentsfile %}