% 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 . % extra types for the bison scanner \def\lexspecialchar#1#2#3{\immediate\write16{encountered: \noexpand#1 fmark: #2, smark: #3}} \def\newlexerstateextra{% \setnulstack{obstackforstring}% \setnulstack{obstackforstringraw}% } \def\savefullstateextra{% \savestatelist{obstackforstring}% \savestatelist{obstackforstringraw}% } % lexer environment \def\yycomplain#1{\immediate\write16{#1}} % lexer errors \def\yypdeprecated#1{\errmessage{option: #1 is ignored}} % outdated options \def\STRINGGROW{% \concat\currentlaststring\yytextpure \concat\currentlaststringraw\yytext} \def\STRINGFINISH{% \laststring\currentlaststring \laststringraw\currentlaststringraw \yypushr\currentlaststring\on\obstackforstring \yypushr\currentlaststringraw\on\obstackforstringraw \currentlaststring{}% \currentlaststringraw{}% } \def\STRINGFREE{% \yypopstack\obstackforstring\by\@ne \currentlaststring{}% \yypopstack\obstackforstringraw\by\@ne \currentlaststringraw{}% } \def\bracketedidstr{} \newcount\contextstate % keeping track of the previous lexer state \newcount\bracketedidcontextstate % similar but in the context of bracketed identifiers \newcount\lonesting % nesting level for tags \newcount\percentpercentcount \newtoks\laststring \newtoks\laststringraw \newtoks\currentlaststring \newtoks\currentlaststringraw