%{
/* doc2tex.l 06 Oct 90
*---------------------------------------------------------
* (c) 1990 by J.Schrod.
* Copyright conditions: GNU General Public License
*/
/*
* VERSION HISTORY
*
* DATE REMARK
* 90-10-06 mentioned filelist WEBWARE for LISTSERV in Heidelberg,
* added tuglib
* 90-01-14 june.cs.washington.edu instead of cs.washington.edu
* 90-01-20 first version
*/
%}
%S PREAMBLE COMMENT COPY
%{
#include <ctype.h>
void hint_to_makeprog();
%}
%%
%{
#ifdef MSDOS
check_yycrank(); /* this should go into ncform... */
#endif
BEGIN PREAMBLE;
%}
^\ *\n putc('\n', yyout);
<PREAMBLE>^%.*\n ECHO;
<PREAMBLE>^. {
hint_to_makeprog();
unput(yytext[0]); NLSTATE;
BEGIN COMMENT;
}
<COMMENT>^\\beginprog.*\n {
fputs("%%% ", yyout); ECHO;
BEGIN COPY;
}
<COMMENT>^.*\n {
fputs("%%% ", yyout); ECHO;
}
<COPY>^\\endprog.*\n {
fputs("%%% ", yyout); ECHO;
BEGIN COMMENT;
}
<COPY>^%%%.*\n {
fputs("%%% ", yyout); ECHO;
fprintf(stderr, "Macro code changed at line %d\n", yylineno-1);
}
<COPY>^.*\n ECHO;
|\n {
register char c = yytext[0];
fprintf(stderr,
"! Illegal state at char %c (\"%02x) in line %d\n",
( isprint(c) ? c : ' ' ),
(unsigned char)c,
( c == '\n' ? yylineno-1 : yylineno )
);
}
%%
void hint_to_makeprog()
{
fputs("%%%%\n",yyout);
fputs("%%%%\n",yyout);
fputs(
"%%%% These TeX macros were documented with the documentation system\n",
yyout);
fputs(
"%%%% MAKEPROG and automatically converted to the current form.\n",
yyout);
fputs(
"%%%% If you have MAKEPROG available you may transform it back to\n",
yyout);
fputs(
"%%%% the original input: Remove every occurence of three percents\n",
yyout);
fputs(
"%%%% and one optional blank from the beginning of a line and remove\n",
yyout);
fputs(
"%%%% every line which starts with four percents. The following lex\n",
yyout);
fputs(
"%%%% program will do this:\n",
yyout);
fputs("%%%%\n",yyout);
fputs("%%%% %%\n",yyout);
fputs("%%%%\n",yyout);
fputs("%%%% ^%%%\\ ? ;\n",yyout);
fputs("%%%% ^%%%%.*\\n ;\n",yyout);
fputs("%%%%\n",yyout);
fputs(
"%%%% MAKEPROG may be obtained over the net from the Bitnet-Listserver\n",
yyout);
fputs(
"%%%% LISTSERV@DHDURZ1 (filelist WEBWARE), from
[email protected],\n",
yyout);
fputs("%%%% or via ftp from june.cs.washington.edu.\n", yyout);
fputs("%%%%\n",yyout);
fputs("%%%%\n",yyout);
return;
}