diff options
Diffstat (limited to 'support/splint/tex/yytexlex.sty')
-rw-r--r-- | support/splint/tex/yytexlex.sty | 208 |
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} |