summaryrefslogtreecommitdiff
path: root/support/splint/tex/yystype.sty
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /support/splint/tex/yystype.sty
Initial commit
Diffstat (limited to 'support/splint/tex/yystype.sty')
-rw-r--r--support/splint/tex/yystype.sty65
1 files changed, 65 insertions, 0 deletions
diff --git a/support/splint/tex/yystype.sty b/support/splint/tex/yystype.sty
new file mode 100644
index 0000000000..e37b298590
--- /dev/null
+++ b/support/splint/tex/yystype.sty
@@ -0,0 +1,65 @@
+% 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 <http://www.gnu.org/licenses/>.
+
+% 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