summaryrefslogtreecommitdiff
path: root/support/splint/tex/yytexlex.sty
diff options
context:
space:
mode:
Diffstat (limited to 'support/splint/tex/yytexlex.sty')
-rw-r--r--support/splint/tex/yytexlex.sty208
1 files changed, 119 insertions, 89 deletions
diff --git a/support/splint/tex/yytexlex.sty b/support/splint/tex/yytexlex.sty
index 7c149108d3..7f5cfd78ec 100644
--- a/support/splint/tex/yytexlex.sty
+++ b/support/splint/tex/yytexlex.sty
@@ -1,4 +1,4 @@
-% Copyright 2012-2020, Alexander Shibakov
+% Copyright 2012-2024, Alexander Shibakov
% This file is part of SPLinT
%
% SPLinT is free software: you can redistribute it and/or modify
@@ -247,7 +247,7 @@
% the most common way for a \TeX? macro to appear in in the input is being inserted by
% \CWEB\ itself; in this case \CWEB\ makes sure that the macro is expanded in math mode;
% this assumption is relied upon in the design of these macros, and violating it may
-% result in sume rather puzzling error messages, resulting from the insertion of
+% result in sume rather puzzling error messages due to the insertion of
% \ignorespaces outside of the current group; the warning macro below makes this
% dependence explicit.
@@ -260,16 +260,19 @@
\fi
}
-\def\TeXx(#1)#2;{% TODO
+\def\TeXx(#1);{% TODO
\TeXxwarn
{}$\let\oldttdot\.\relaxcweb
\let\.\dotcollect
\textoks{}%
- #1%
+ \setbox\z@=\hbox{#1\expandafter}\expandafter
+ \textoks\expandafter{\the\textoks}%
\restorecweb\let\.\oldttdot
\expandafter\T@Xx\the\textoks
{}${}\aftergroup\ignorespaces}
+\def\BZ(#1){}
+
\def\mypar{\par}
\def\TeXb(#1)#2;{% TeX material begin
@@ -286,7 +289,7 @@
\dotcollectstripquotes
${}\aftergroup\ignorespaces}
-\def\TeXa(#1)#2;{% TeX material add
+\def\TeXa(#1)#2;{% TeX material add (stitch the \TeX\ chunks together)
\TeXxwarn
{}$\let\oldttdot\.\relaxcweb
\toksa{}\let\.\dotcollectb
@@ -295,7 +298,7 @@
\dotcollectstripquotes
${}\aftergroup\ignorespaces}
-\def\TeXf(#1)#2;{% TeX material add
+\def\TeXf(#1)#2;{% TeX material add (output each chunk on a separate line)
\TeXxwarn
{}$\let\oldttdot\.\relaxcweb
\toksa{}\let\.\dotcollectb
@@ -305,7 +308,7 @@
\dotcollectstripquotes
${}\aftergroup\ignorespaces}
-\def\TeXao(#1)#2;{% TeX material output
+\def\TeXao(#1)#2;{% TeX material output (stitch the \TeX\ chunks together)
\TeXxwarn
{}$\let\oldttdot\.\relaxcweb
\toksa{}\let\.\dotcollectb
@@ -317,7 +320,7 @@
\expandafter\T@Xx\expandafter
"\the\textoks"{}${}\aftergroup\ignorespaces}
-\def\TeXfo(#1)#2;{% TeX material output
+\def\TeXfo(#1)#2;{% TeX material output (output each chunk on a separate line)
\TeXxwarn
{}$\let\oldttdot\.\relaxcweb
\toksa{}\let\.\dotcollectb
@@ -330,8 +333,26 @@
\expandafter\T@Xx\expandafter
"\the\textoks"{}${}\aftergroup\ignorespaces}
+\let\TeXxx\TeXx
+\let\TeXaxx\TeXa
+\let\TeXbxx\TeXb
+\let\TeXaoxx\TeXao
+\let\TeXfxx\TeXf
\let\TeXxi\TeXx
-\def\inlineTeXx#1{$\let\writetexidxentry\writetextxtidxentry\TeXxi(\.{"#1"});$} % for indexing macros
+\def\inlineTeXx#1{{\let\writetexidxentry\writetextxtidxentry$\TeXxi(\.{"#1"});$}} % for indexing macros
+
+\def\texref#1{% convenient shortcut
+ {%
+ \def\texnspace{texline}\def\texispace{index:tex}\inlineTeXx{#1}%
+ }%
+}
+
+\def\texrefx#1#2{% convenient shortcut
+ {%
+ \def\texnspace{#2}\def\texispace{index:tex}\inlineTeXx{#1}%
+ }%
+}
+
\def\TeXlit{\iffalse{\fi}{\setbox0\lastbox}\removewhitespace
\expandafter\.\expandafter{\iffalse}\fi} % to help with \CWEB's @t...@> cleanup
% e.g.\ |TeXao(@t\TeXlit"\hbox{\TeX\ stuff}"@>);|
@@ -367,7 +388,7 @@
\else
\bbbalance{#1}%
\fi
- \iftracetexpp\ferrmessage{TeX_ final pass: \the\texlinetoks}\fi
+ \iftracetexpp\ferrmessage{TeX_ final pass: \the\texlinetoks (idx: \the\texidxtoks)}\fi
\concat\texlinetoks\texidxtoks
\expandafter
\endgroup
@@ -426,8 +447,7 @@
\def\spacecontainer{\ }
\def\texnspace{texline}
-\def\texvspace{texvisline}
-\def\texispace{index}
+\def\texispace{index:tex}
\let\defpostfix\defTpostfix
\let\defprefix\empty
@@ -435,7 +455,7 @@
\let\settgroup\relax
\defx\space{\hbox{$\,$\char`\ $\,$}}{texline}
-\defy\space{\hbox{$\,$\char`\ $\,$}}{index}
+\defy\space{\hbox{$\,$\char`\ $\,$}}{index:tex}
\defx\hspace{% somewhat precarious definition
\hbox{\char`\ }%
@@ -450,7 +470,7 @@
}\grabbalanced
}{texline}
-\defy\hspace{\hbox{$\,$\char`\ $\,$}}{index}
+\defy\hspace{\hbox{$\,$\char`\ $\,$}}{index:tex}
\defx\advance{%
$\mathop{\hbox{\bf add}}$%
@@ -458,7 +478,7 @@
\defy\advance{%
{\bf add}%
-}{index}
+}{index:tex}
\defx\z@{%
$\,0_{\rm R}\,$%
@@ -466,7 +486,7 @@
\defy\z@{%
$0_{\rm R}$%
-}{index}
+}{index:tex}
\defx\z@{0_R}{index:visual}
@@ -476,7 +496,7 @@
\defy\@ne{%
$1_{\rm R}$%
-}{index}
+}{index:tex}
\defx\@ne{1_R}{index:visual}
@@ -486,7 +506,7 @@
\defy\tw@{%
$2_{\rm R}$%
-}{index}
+}{index:tex}
\defx\tw@{2_R}{index:visual}
@@ -496,7 +516,7 @@
\defy\m@ne{%
$-1_{\rm R}$%
-}{index}
+}{index:tex}
\defx\m@ne{-1_R}{index:visual}
@@ -506,7 +526,7 @@
\defy\tempca{%
$t_a$%
-}{index}
+}{index:tex}
\defx\tempca{t_a}{index:visual}
@@ -516,7 +536,7 @@
\defy\tempcb{%
$t_b$%
-}{index}
+}{index:tex}
\defx\tempcb{t_b}{index:visual}
@@ -536,7 +556,7 @@
\defy\toksa{%
$v_a$%
-}{index}
+}{index:tex}
\defx\toksb{%
{}$v_b${}%
@@ -554,7 +574,7 @@
\defy\toksb{%
$v_b$%
-}{index}
+}{index:tex}
\defx\toksc{%
{}$v_c${}%
@@ -572,7 +592,7 @@
\defy\toksc{%
$v_c$%
-}{index}
+}{index:tex}
\defx\toksd{%
{}$v_d${}%
@@ -590,7 +610,7 @@
\defy\toksd{%
$v_d$%
-}{index}
+}{index:tex}
\defx\tokse{%
{}$v_e${}%
@@ -608,7 +628,7 @@
\defy\tokse{%
$v_e$%
-}{index}
+}{index:tex}
\defx\toksf{%
{}$v_f${}%
@@ -624,7 +644,7 @@
\defx\toksf{vf}{index:visual}
-\defy\toksf{$v_f$}{index}
+\defy\toksf{$v_f$}{index:tex}
\defx\toksg{%
{}$v_g${}%
@@ -640,7 +660,7 @@
\defx\toksg{vg}{index:visual}
-\defy\toksg{$v_g$}{index}
+\defy\toksg{$v_g$}{index:tex}
\defx\toksh{%
{}$v_h${}%
@@ -656,7 +676,7 @@
\defx\toksh{vh}{index:visual}
-\defy\toksh{$v_h$}{index}
+\defy\toksh{$v_h$}{index:tex}
\defx\yyval{%
{}$\Upsilon${}%
@@ -672,7 +692,7 @@
\defy\yyval{%
$\Upsilon$%
-}{index}
+}{index:tex}
\defx\yyval{Y}{index:visual}
@@ -706,7 +726,7 @@
\defy\yylexreturnptr{%
{\bf return$_p$}%
-}{index}
+}{index:tex}
\defx\yylexreturnptr{return_p}{index:visual}
@@ -716,7 +736,7 @@
\defy\yylexreturnxchar{%
\hbox{\bf return$_x$}%
-}{index}
+}{index:tex}
\defx\yylexreturnxchar{return_x}{index:visual}
@@ -726,7 +746,7 @@
\defy\yylexreturnchar{%
\hbox{\bf return$_c$}%
-}{index}
+}{index:tex}
\defx\yylexreturnchar{return_c}{index:visual}
@@ -736,7 +756,7 @@
\defy\yylexnext{%
{\bf continue}%
-}{index}
+}{index:tex}
\defx\yylexnext{continue}{index:visual}
@@ -746,7 +766,7 @@
\defy\yylexreturn{%
{\bf return$_l$}%
-}{index}
+}{index:tex}
\defx\yylexreturn{return_l}{index:visual}
@@ -756,7 +776,7 @@
\defy\yylexreturnval{%
{\bf return$_v$}%
-}{index}
+}{index:tex}
\defx\yylexreturnval{return_v}{index:visual}
@@ -766,7 +786,7 @@
\defy\yylexreturnsym{%
{\bf return$_{vp}$}%
-}{index}
+}{index:tex}
\defx\yylexreturnsym{return_vp}{index:visual}
@@ -776,7 +796,7 @@
\defy\yylexreturntext{%
{\bf return$_t$}%
-}{index}
+}{index:tex}
\defx\yylexreturntext{return_t}{index:visual}
@@ -786,7 +806,7 @@
\defy\xcclreturn{%
{\bf set $\Upsilon$ {\rm and} return$^{\rm ccl}$}%
-}{index}
+}{index:tex}
\defx\xcclreturn{set U return^ccl}{index:visual}
@@ -796,7 +816,7 @@
\defy\yyflexoptreturn{%
{\bf return$^{\rm opt}$}%
-}{index}
+}{index:tex}
\defx\yyflexoptreturn{return^opt}{index:visual}
@@ -818,7 +838,7 @@
\defy\yyfatal{%
{\bf fatal}%
-}{index}
+}{index:tex}
\defx\yywarn{%
{}$\mathop{\bf warn}${}%
@@ -836,7 +856,7 @@
\defy\yywarn{%
{\bf warn}%
-}{index}
+}{index:tex}
\defx\yypdeprecated{%
{}$\mathop{\bf deprecated}${}%
@@ -854,17 +874,17 @@
\defy\yypdeprecated{%
{\bf deprecated}%
-}{index}
+}{index:tex}
\defx\table{{}$\Omega${}}{texline}
-\defy\table{$\Omega$}{index}
+\defy\table{$\Omega$}{index:tex}
\defx\table{Omega}{index:visual}
\defx\relax{\hbox{$\circ$}}{texline}
-\defy\relax{\hbox{$\circ$}}{index}
+\defy\relax{\hbox{$\circ$}}{index:tex}
\defx\the#1{%
\toksa{#1}%
@@ -876,7 +896,7 @@
\defy\the{%
$\mathop{\rm val}\cdot$ {\rm or }%
\lcenclose{$\cdot$}%
-}{index}
+}{index:tex}
\defx\the{val}{index:visual}
@@ -908,7 +928,7 @@
\defy\inmath{%
$^\bullet(\,\cdot\,)$%
-}{index}
+}{index:tex}
\defx\ifx{%
{\bf if$_{\rm x}\;$}%
@@ -916,7 +936,7 @@
\defy\ifx{%
{\bf if$_{\rm x}$}%
-}{index}
+}{index:tex}
\defx\ifnum{%
{\bf if$_\omega\;$}%
@@ -924,7 +944,7 @@
\defy\ifnum{%
{\bf if$_\omega$}%
-}{index}
+}{index:tex}
\defx\ifcat{%
{\bf if$_{\rm cat}\;$}%
@@ -932,7 +952,7 @@
\defy\ifcat{%
{\bf if$_{\rm cat}$}%
-}{index}
+}{index:tex}
\defx\iftracebadchars{%
{\bf if$_t$ {\rm[{\tt bad char}]}$\;$}%
@@ -940,7 +960,7 @@
\defy\iftracebadchars{%
{\bf if$_t$ {\rm[{\tt bad char}]}}%
-}{index}
+}{index:tex}
\defx\else{%
{\bf else$\;$}%
@@ -948,7 +968,7 @@
\defy\else{%
{\bf else}%
-}{index}
+}{index:tex}
\defx\fi{%
{\bf fi$\;$}%
@@ -956,7 +976,7 @@
\defy\fi{%
{\bf fi}%
-}{index}
+}{index:tex}
\defx\def{%
{\bf def$\;$}%
@@ -964,7 +984,7 @@
\defy\def{%
{\bf def}%
-}{index}
+}{index:tex}
\defx\edef{%
{\bf def$_{\rm x}\;$}%
@@ -972,7 +992,7 @@
\defy\edef{%
{\bf def$_{\rm x}$}%
-}{index}
+}{index:tex}
\defx\edef{def_x}{index:visual}
@@ -990,7 +1010,7 @@
\defy\empty{%
$\emptyset$%
-}{index}
+}{index:tex}
\defx\ifrhsfull{%
{\bf if {\rm ($\,$rhs${}={}$full$\,$)}$\;$}%
@@ -998,7 +1018,7 @@
\defy\ifrhsfull{%
{\bf if {\rm ($\,$rhs${}={}$full$\,$)}}%
-}{index}
+}{index:tex}
\defx\rhsfulltrue{%
{\rm rhs${}={}$full$\,$}%
@@ -1006,7 +1026,7 @@
\defy\rhsfulltrue{%
{\rm rhs${}={}$full}%
-}{index}
+}{index:tex}
\defx\rhsfullfalse{%
{\rm rhs${}={}$not full$\,$}%
@@ -1014,7 +1034,7 @@
\defy\rhsfullfalse{%
{\rm rhs${}={}$not full}%
-}{index}
+}{index:tex}
\defx\noexpand{%
$^{\rm nox}$%
@@ -1026,11 +1046,11 @@
\defy\noexpand{%
$^{\rm nox}$%
-}{index}
+}{index:tex}
\defy\nx{%
$^{\rm nx}$%
-}{index}
+}{index:tex}
\defx\to{%
${}\mapsto{}$%
@@ -1038,7 +1058,7 @@
\defy\to{%
$\mapsto$%
-}{index}
+}{index:tex}
\defx\emptyterm{%
\hbox{$\ulcorner\ldots\urcorner$}%
@@ -1046,7 +1066,7 @@
\defy\emptyterm{%
\hbox{$\ulcorner\ldots\urcorner$}%
-}{index}
+}{index:tex}
\defx\hfil{\hbox{$\,\Leftrightarrow\,$}}{texline}
\defx\omit{\hbox{$\,{\times\atop\times}$}}{texline}
@@ -1070,7 +1090,7 @@
\defy\yy{%
$\Upsilon\kern-1pt{}_{\rm?}$%
-}{index}
+}{index:tex}
\defx\yy{Y_?}{index:visual}
@@ -1100,7 +1120,16 @@
\def\setpgroup{$\Upsilon\kern-1pt{}_{\rm#1}\langle{}${\tt\the\toksa}${}\rangle\;$}\grabbalanced
}
+%\def\scriptswitch{\the\scriptfont0}
+\def\scriptswitch{%
+ \sscmd\it
+ \let\_\uscore
+% \let\acharswitch\textadustacharswitch
+}
+
\def\seeksymtt#1[{{$\Upsilon\kern-1pt{}_{\rm#1}$}}
+\def\seeksymtt#1[{{$\Upsilon\kern-1pt{}_{\hbox{\scriptswitch\nameproc{#1}\with\parsebin\the\toksa}}$}}
+\def\seeksymtt#1[{{$\Upsilon\kern-1pt{}_{\hbox{\sscmd\prodstyle{#1}}}$}}
\def\seeknott#1){{$\Upsilon\kern-1pt{}_{\rm#1}$}}
@@ -1136,7 +1165,7 @@
\defy\bb{%
${}_{\rm?}\kern-2pt\Upsilon$%
-}{index}
+}{index:tex}
\defx\bb{Y_??}{index:visual}
@@ -1149,7 +1178,7 @@
\defy\switchon{%
\hbox{\bf switch$\;$}%
-}{index}
+}{index:tex}
\defx\in{%
$\,\varepsilon\,$%
@@ -1157,7 +1186,7 @@
\defy\in{%
$\,\varepsilon\,$%
-}{index}
+}{index:tex}
\defx\concat#1#2{%
\hbox{#1${}\leftarrow{}$#1${}+_{\rm s}{}$#2$\;$}%
@@ -1165,7 +1194,7 @@
\defy\concat{%
\hbox{$A\leftarrow A+_{\rm s}B$}%
-}{index}
+}{index:tex}
\defx\appendr#1{%
\hbox{#1${}\leftarrow{}$#1${}+_{\rm sx}{}$}%
@@ -1176,7 +1205,7 @@
\defy\appendr{%
\hbox{$A\leftarrow A+_{\rm sx}B$}%
-}{index}
+}{index:tex}
\defx\default{%
{\tt default}$\;$%
@@ -1197,7 +1226,7 @@
\defy\getfirst{%
$\pi_1$%
-}{index}
+}{index:tex}
\defx\getfirst{pi_1}{index:visual}
@@ -1215,7 +1244,7 @@
\defy\getsecond{%
$\pi_2$%
-}{index}
+}{index:tex}
\defx\getsecond{pi_2}{index:visual}
@@ -1233,7 +1262,7 @@
\defy\getthird{%
$\pi_3$%
-}{index}
+}{index:tex}
\defx\getthird{pi_3}{index:visual}
@@ -1251,7 +1280,7 @@
\defy\getfourth{%
$\pi_4$%
-}{index}
+}{index:tex}
\defx\getfourth{pi_4}{index:visual}
@@ -1269,7 +1298,7 @@
\defy\getfifth{%
$\pi_5$%
-}{index}
+}{index:tex}
\defx\getfifth{pi_5}{index:visual}
@@ -1287,7 +1316,7 @@
\defy\rhscont{%
$\pi_{\{\}}$%
-}{index}
+}{index:tex}
\defx\rhscont{pi_brace}{index:visual}
@@ -1305,7 +1334,7 @@
\defy\rhscnct{%
$\pi_{\leftrightarrow}$%
-}{index}
+}{index:tex}
\defx\rhscnct{pi_arrow}{index:visual}
@@ -1323,7 +1352,7 @@
\defy\rhsbool{%
$\pi_{\vdash}$%
-}{index}
+}{index:tex}
\defx\rhsbool{pi_implies}{index:visual}
@@ -1333,7 +1362,7 @@
\defy\%{%
{\.{\harmlesscomment}}\let\defypostamble\relax%
-}{index}
+}{index:tex}
\defx\%{\%}{index:visual}
@@ -1343,7 +1372,7 @@
\defy\harmlesscomment{%
{\.{\harmlesscomment}}\let\defypostamble\relax%
-}{index}
+}{index:tex}
\defx\harmlesscomment{\%}{index:visual}
@@ -1353,7 +1382,7 @@
\defy\\{%
{\.{\\}}\let\defypostamble\relax%
-}{index}
+}{index:tex}
\defx\\{\\}{index:visual}
@@ -1363,7 +1392,7 @@
\defy\lbchar{%
\.{\{}%
-}{index}
+}{index:tex}
\expandafter\defx\expandafter\lbchar\expandafter{\lbchar lbchar}{index:visual}
@@ -1440,6 +1469,7 @@
\defx\yyBEGIN{%
\def\setegroup{{\bf enter}}%
+ \def\settgroup{{\bf enter}}% for text examples
\def\setpgroup{%
{%
\let\parsernamespace\flexpseudonamespace
@@ -1451,7 +1481,7 @@
\expandafter
}\the\toksd
\let\termindex\writeidxfsentry
- \edef\next{{}$\nx\mathop{\hbox{\nx\bf enter}}(\hbox{\the\toksd})${}%
+ \edef\next{{}$\nx\mathop{\hbox{\nx\bf enter}}(\hbox{\nx\flexsndisplay{\the\toksd}})\,${}%
\gidxentryxb{\termvstring}{\the\toksa}{\the\tokse}}\next
\let\termindex\eatone
}\grabbalanced
@@ -1459,7 +1489,7 @@
\defy\yyBEGIN{%
{\bf enter}%
-}{index}
+}{index:tex}
\defx\yyBEGIN{enter}{index:visual}
@@ -1469,7 +1499,7 @@
\defy\yyBEGINr{%
{\bf enter$_x$}%
-}{index}
+}{index:tex}
\defx\yyBEGINr{enter_x}{index:visual}
@@ -1486,7 +1516,7 @@
\expandafter
}\the\toksd
\let\termindex\writeidxfsentry
- \edef\next{{}$\nx\mathop{\hbox{\nx\bf push state}}(\hbox{\the\toksd})\,${}
+ \edef\next{{}$\nx\mathop{\hbox{\nx\bf push state}}(\hbox{\nx\flexsndisplay{\the\toksd}})\,${}
\gidxentryxb{\termvstring}{\the\toksa}{\the\tokse}}\next
\let\termindex\eatone
}\grabbalanced
@@ -1494,7 +1524,7 @@
\defy\yypushstate{%
{\bf push state}%
-}{index}
+}{index:tex}
\defx\yypushstate{push\_state}{index:visual}
@@ -1519,7 +1549,7 @@
\defy\yypopstate{%
{\bf pop state}%
-}{index}
+}{index:tex}
\defx\yypopstate{pop state}{index:visual}
@@ -1536,7 +1566,7 @@
\expandafter
}\the\toksd
\let\termindex\writeidxfsentry
- \edef\next{{}$\nx\mathop{\hbox{\nx\bf state}}(\hbox{\the\toksd})\,${}%
+ \edef\next{{}$\nx\mathop{\hbox{\nx\bf state}}(\hbox{\nx\flexsndisplay{\the\toksd}})\,${}%
\gidxentryxb{\termvstring}{\the\toksa}{\the\tokse}}\next
\let\termindex\eatone
}\grabbalanced
@@ -1544,6 +1574,6 @@
\defy\yylexstate{%
{\bf state}%
-}{index}
+}{index:tex}
\defx\yylexstate{state}{index:visual}